#javascript #jquery #ajax #load #fragment
#javascript #jquery #ajax #загрузить #фрагмент
Вопрос:
После исчезновения меню я не могу отобразить свой контент без указания определенного html.
ВОТ HTML:
<div id="header">
<h1>N300 Project Gallery</h1>
</div>
<div id="container">
<div id="utility">
<ul>
<li><a href="about.html">About</a></li>
<li><a href="projects.html">Projects</a></li>
</ul>
</div>
<div id="index-content">?</div>
<div id="footer">This is the footer</div>
</div>
Вот мой скрипт:
$(document).ready(function() {
$('#utility a').click(function(e){
e.preventDefault();
$('#utility').hide('normal',loadContent);
});
function loadContent() {
$('#index-content').load(url '#content')
}
});
ВОТ ФРАГМЕНТ, КОТОРЫЙ Я ХОЧУ ПЕРЕМЕСТИТЬ:
<div id="content">
<p>Hello! My name is Brittany Shephard.</p>
</div>
Ответ №1:
Обратите внимание, что вам нужен дополнительный пробел перед #content
URL-адресом, на который вы переходите .load()
, если вы хотите, чтобы поведение загрузки фрагмента ( ' #content'
вместо '#content'
).
Ваш фрагмент находится в отдельном файле, правильно?
Предполагая, что ваш фрагмент возвращен из projects.html #content
, попробуйте:
function loadContent() {
$('#index-content').load($(this).attr('href') ' #content');
}
Из документов jQuery для hide this
устанавливается на скрытый узел DOM при обратном вызове. Я предполагаю, что вы хотите загрузить URL-адрес из якоря, который вы скрываете, поэтому вам нужно захватить href
атрибут из этого узла.
Комментарии:
1. Похоже, это не сработает, поскольку скрытый элемент — это не сама ссылка, а контейнер.
Ответ №2:
Откуда берется url
in loadContent()
?
В случае, если вам нужно будет передать его из атрибута e.target
href, создайте анонимную функцию для обратного вызова hide и передайте URL в LoadContent. Что-то вроде:
$(document).ready(function() {
$('#utility a').click(function(e){
e.preventDefault();
$('#utility').hide('normal', function() {
loadContent($(e.target).attr('href'));
});
});
function loadContent(url) {
$('#index-content').load(url ' #content');
}
});
Комментарии:
1. url-адрес является заменой для about.html , но я хочу загрузить другой (‘page.html #содержимое») на основе ссылки, по которой вы нажали. Можете ли вы написать, что вы описываете?