Javascript 如何使用jQuery加载动态内容?
我正在跟踪,一切正常,但是如果我在加载的脚本中有其他链接,脚本就不起作用。有人能在下面的代码中发现错误吗Javascript 如何使用jQuery加载动态内容?,javascript,jquery,html,dynamic,load,Javascript,Jquery,Html,Dynamic,Load,我正在跟踪,一切正常,但是如果我在加载的脚本中有其他链接,脚本就不起作用。有人能在下面的代码中发现错误吗 $(document).ready(function() { var hash = window.location.hash.substr(1); var href = $('.nav li a').each(function(){ var href = $(this).attr('href'); if(hash==href.substr(
$(document).ready(function() {
var hash = window.location.hash.substr(1);
var href = $('.nav li a').each(function(){
var href = $(this).attr('href');
if(hash==href.substr(0,href.length-5)){
var toLoad = hash+'.html #content';
$('#content').load(toLoad)
}
});
$('.nav li a').click(function(){
var toLoad = $(this).attr('href')+' #content';
$('#content').hide('fast',loadContent);
$('#load').remove();
$('#wrapper').append('<span id="load">LOADING...</span>');
$('#load').fadeIn('normal');
window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-5);
function loadContent() {
$('#content').load(toLoad,'',showNewContent())
}
function showNewContent() {
$('#content').show('normal',hideLoader());
}
function hideLoader() {
$('#load').fadeOut('normal');
}
return false;
});
});
我的情景
从站点索引开始
单击“联系人”
已加载联系人“内容分区”
在contact content div中,我有另一个链接“map.html”,我想在其他位置同样打开它,只有“content div”加载->它不工作-站点正常加载
如果您正在谈论的内容中的链接是.nav li a链接,那么这里的问题是.click事件仅在documentready上分配一次,不会影响documentready之后加载的内容 因此,最简单的方法是将$'.nav li a'.clickfunction{更改为 这样,事件处理程序也将附加到稍后加载的内容 注意:根据您的jQuery版本,您可能必须为这种行为使用不同的方法:
$(selector).live(events, data, handler); // jQuery 1.3+
$(document).delegate(selector, events, data, handler); // jQuery 1.4.3+
$(document).on(events, selector, data, handler); // jQuery 1.7+
在ajax请求完成后,请尝试运行文档准备就绪后运行的操作。站点索引->我单击“联系人”-->联系人“内容分区”加载->在联系人内容分区中我有其他链接,例如“map.html”我想在其他位置同样打开它,只有“内容分区”加载->不起作用-站点加载正常,是吗?!
$(selector).live(events, data, handler); // jQuery 1.3+
$(document).delegate(selector, events, data, handler); // jQuery 1.4.3+
$(document).on(events, selector, data, handler); // jQuery 1.7+