我的页面上有一些div
个元素。在主div
中,当单击链接时,使用jQuery通过AJAX加载内容。当我单击不在主div
中的链接时,这非常有效。但是当我在主div
中有一个通过AJAX加载的链接时,它们就不起作用了。我不知道为什么。这是一个例子:
我有一个链接。我给了它类products
,所以jQuery知道要加载哪个内容。所以我的链接看起来像这样:
<a href="javascript:;" class="products">products</a>
我已经href="javascript:;"
了,因为对我来说href="#"
不起作用,我需要一个href
,所以有些CSS可以使用。
可能是什么问题?
答案 0 :(得分:4)
没有看到我猜测的实际代码,但更常见的是,这样的问题不是由于您在加载时分配click
处理程序而导致的,而不是在新{{1}时重新分配它们元素被附加到页面。
要解决此问题,请使用委托的事件处理程序,如下所示:
div
答案 1 :(得分:1)
好吧,当您放置href="#"
时,页面实际上会重新加载,并且使用#符号覆盖网址。您需要在点击事件结束时放置 return false
以停止重新加载,并且一切正常。否则你也可以在href
中做到这一点
如何,你需要找出我想它必须像href="javascript:return false;"
答案 2 :(得分:0)
JQuery API官方建议所有用户在这种情况下使用.live()
,
这样的语法:
$('a.products').live('click',function() {
// do what you want
});
祝你好运
答案 3 :(得分:0)
.live的解决方案为我工作。
这是我现在使用的jquery代码:
这是我的代码。对不起,我忘记发帖了!
<script>
$(document).ready(function() {
$('.sofas').live('click',function() {
$('#content-shown , #pics').animate({opacity:0},250,function() {
$('.content-loading').fadeIn(250, function() {
$('#navigation_all , #content-shown').css("height","6600px");
$('#pics').load('content.html #sofas-bild').animate({opacity:1},250);
$('#content-shown').load('content.html #sofas', function() {
$('.content-loading').fadeOut(250, function() {
$('#content-shown').animate({opacity:1},250);
});
});
});
});
});
});
</script>
之前,我得到了.click(function(){而不是.live ....