使用ajax时我的链接不起作用; jquery打开它

时间:2012-12-24 11:59:48

标签: jquery ajax

我的页面上有一些div个元素。在主div中,当单击链接时,使用jQuery通过AJAX加载内容。当我单击不在主div中的链接时,这非常有效。但是当我在主div中有一个通过AJAX加载的链接时,它们就不起作用了。我不知道为什么。这是一个例子:

我有一个链接。我给了它类products,所以jQuery知道要加载哪个内容。所以我的链接看起来像这样:

<a href="javascript:;" class="products">products</a> 

我已经href="javascript:;"了,因为对我来说href="#"不起作用,我需要一个href,所以有些CSS可以使用。

可能是什么问题?

4 个答案:

答案 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 ....