相关疑难解决方法(0)

单击1后禁用jquery功能,以防止多次执行

我有以下功能,它可以获取超出默认情况下显示的20个以上的注释

$('.more_comments_link').live('click', function() {
        $(".more_comments_link").text("Fetching More Comments ...");

        var ajaxOpts = {
            type: "get",
            url: "ajax_getcomments.php",
            dataType: 'json',
            data: "&itemid=<? echo $id; ?>&type=1&owner=<? echo $event["data"]["e_creator"]; ?>&more=1",
            success: function(data) {
                $('.discussion-more').after(data);
                $(".discussion-more").hide();
            }
        };

        $.ajax(ajaxOpts);
        return false;
    }); 
Run Code Online (Sandbox Code Playgroud)

它的工作原理,唯一的问题是,用户可以非常快速地点击按钮3次,并且它会向ajax_getcomments.php发送3个请求,每次都获得相同的结果集.

我尝试添加

$(".more_comments_link").unbind('click');
Run Code Online (Sandbox Code Playgroud)

但它没有做任何事情.

初始结果集也使用jquery获取,因此我正在使用 .live(click'

不确定它是否与它不起作用有关.

jquery

17
推荐指数
2
解决办法
4万
查看次数

防止jQuery中的click事件多次触发

我创建了一个jQuery内容切换器.一般来说,它工作正常,但它有一个问题.如果多次单击侧面的链接,有时会显示多条内容.

问题最有可能出现在click事件中.这是代码:

$('#tab-list li a').click(
    function() {
        var targetTab = $(this).attr('href');
        if ($(targetTab).is(':hidden')) {
            $('#tab-list li').removeClass('selected');
            var targetTabLink = $(this).parents('li').eq(0);
            $(targetTabLink).addClass('selected');
            $('.tab:visible').fadeOut('slow',
                function() {
                    $(targetTab).fadeIn('slow');
                }
            );
        }
        return false;
    }
);
Run Code Online (Sandbox Code Playgroud)

我已经尝试为转换添加锁定,以便在转换发生时忽略进一步的点击,但无济于事.我还尝试使用以下内容防止在某些内容已经动画时触发转换:

if ($(':animated')) {
    // Don't do anything
}
else {
   // Do transition
}
Run Code Online (Sandbox Code Playgroud)

但它似乎总是认为事物是动画的.有什么想法可以防止多次触发动画?

javascript jquery

9
推荐指数
2
解决办法
2万
查看次数

标签 统计

jquery ×2

javascript ×1