jquery .click功能在按下按钮时不触发。必须多次点击

时间:2011-10-28 06:21:18

标签: jquery html css

我有这个jquery代码:

$(document).ready(function() {
        $('div.badge_button > .more').click(function() {
        var id = $(this).attr('id');
        $('#window').fadeIn();
        $("#window").empty().html('<img src="images/loading.gif" />');
        $('#window').load('badge.php', {id:id});
        $.scrollTo( '#window', 200 );

});
});

和这个html:

<div class = 'badge_button'><a href='#' id = '1' class='more'>More</a></div>

我的问题是我必须在实际触发之前多次点击“更多”按钮。这种情况发生和开启。是因为默认行为还是与href='#'有关?

3 个答案:

答案 0 :(得分:0)

我认为不添加return false;就是问题所在。您需要它,因为href=#重新加载页面。

$(document).ready(function() {
        $('div.badge_button > .more').click(function() {
        var id = $(this).attr('id');
        $('#window').fadeIn();
        $("#window").empty().html('<img src="images/loading.gif" />');
        $('#window').load('badge.php', {id:id});
        $.scrollTo( '#window', 200 );
        return false;
});
});

希望它有所帮助...

答案 1 :(得分:0)

是的,你的Jquery逻辑很好,但href=#正在重新加载页面。

只需在Jquery逻辑中添加return false;

$(document).ready(function() {
        $('div.badge_button > .more').click(function() {
             var id = $(this).attr('id');
             $('#window').fadeIn();
             $("#window").empty().html('<img src="images/loading.gif" />');
             $('#window').load('badge.php', {id:id});
             $.scrollTo( '#window', 200 );
             return false;
        });
});

答案 2 :(得分:0)

我猜这个问题是对窗口对象的引用(希望你试图引用它)。

在这种情况下,您的代码应如下所示:

$(document).ready(function() {
        $('div.badge_button > .more').click(function() {
        var id = $(this).attr('id');
        $(window).fadeIn();
        $(window).empty().html('<img src="images/loading.gif" />');
        $(window).load('badge.php', {id:id});
        $.scrollTo( window, 200 );
        });
});

查看绑定事件时引用文档的方式。

Demo:查看错误控制台,您现在将发现错误,指出找不到该页面,因为该页面在服务器上不存在。希望它应该适用于您的网站。

另外快速建议你可以摆脱document.ready而不是使用实时处理程序。类似的东西:

$('div.badge_button > .more').live("click",function() {
        var id = $(this).attr('id');
        $(window).fadeIn();
        $(window).empty().html('<img src="images/loading.gif" />');
        $(window).load('badge.php', {id:id});
        $.scrollTo( window, 200 );
        });

希望这有帮助。