Вопрос
Это мог бы быть простой ответ, но у меня возникли некоторые проблемы при написании этого небольшого скрипта загрузки… Я думаю, что у меня где-то ошибка, я могу заставить его очистить div, однако страница не загружается:
Jquery - Jquery - запрос:
$(document).ready(function() {
//Load content
$(".load").click(function(){
$("#content").empty();
loadName = $(this).find("a").attr("id");
$("#content").load("/content/" + loadName + ".php");
});
});
HTML:
<div id="select">
<div id="menu">
<ul>
<li><a class="load" href="javascript:void(0)" id="project1">Project 1</a></li>
<li><a class="load" href="javascript:void(0)" id="project2">Project 2</a></li>
</ul>
</div>
</div>
<div id="content"></div>
оба php-файла расположены по ссылке, подобной so (обратите внимание, что это просто фиктивные имена, а не реальные ссылки):
http://www.hostname.com/content/project1.php
http://www.hostname.com/content/project2.php
Решение
поскольку вы определили $('.load')
, вам не нужно делать find('a')
для $(this)
.Просто используй $(this).attr('id')
Другие советы
Я думаю, что ваша строка loadName должна быть такой:
var loadName = $(this).attr("id"); // didn't see a declaration in your code
функция find() jquery "выполняет поиск не по выбранным элементам, а только по их потомкам".
Похоже, у вас уже есть "this", указывающее на ваши элементы "a", так что избавьтесь от find().