我正在尝试使用jQuery将特定div从我服务器上的单独页面加载到当前页面上的div中。代码位于我的标题中,它在网站上的前两次点击成功运行,但之后没有。
我正在使用的代码是:
<script type="text/Javascript">
$('a').click(function(e) {
$("#container").load($(this).attr('href') + " #wrapper");
e.preventDefault();
});
</script>
我发现该网站不完整或功能齐全,但现在可以通过以下步骤在dev.justapo.co进行尝试:
非常感谢任何帮助,我正在尝试学习jQuery而不确定我在这里做错了什么。
答案 0 :(得分:2)
问题是$('a')。click()在执行代码时将事件处理程序附加到所有锚元素,而新创建的元素将不会设置该处理程序。
你会想要使用委托,如下:
$('body').on('click', 'a', handler_function);
请参阅.on()的文档。
答案 1 :(得分:1)
$('html').on('click', 'a', function(e) {
$("#container").load($(this).attr('href') + " #wrapper");
e.preventDefault();
});
答案 2 :(得分:1)
尝试 -
$('html').on('click', 'a', function(e) {
$("#container").load($(this).attr('href') + " #wrapper");
e.preventDefault();
});
我只是看看你的网站。你可能需要做这样的事情 -
$('#primary a').click(function(){
$("#container").load($(this).attr('href') + " #wrapper");
return false;
});
您遇到问题,因为此ID primary
和ID不能重复。你应该使用class。
答案 3 :(得分:0)
嘿,你也可以试试这段代码
$('a').live("click",function(e) {
$("#container").load($(this).attr('href') + " #wrapper");
e.preventDefault();
});
希望它可以帮到你