首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >1次点击后关闭jquery函数,防止多次执行

1次点击后关闭jquery函数,防止多次执行
EN

Stack Overflow用户
提问于 2011-05-20 04:03:53
回答 8查看 45.8K关注 0票数 19

我有以下函数,可以获取超过默认显示的20个注释的更多注释

代码语言:javascript
复制
$('.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;
    }); 

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

我试着添加

代码语言:javascript
复制
$(".more_comments_link").unbind('click');

但它什么也做不了。

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

不确定这是否与它不工作的原因有关。

EN

回答 8

Stack Overflow用户

发布于 2014-03-08 05:45:20

对于一个非常简单的解决方案来说,所有这些解决方案都太复杂了;请按照这里的文档使用.one():

http://api.jquery.com/one/

只需将live更改为one。如下所示:

代码语言:javascript
复制
$('.more_comments_link').one('click', function() {
票数 16
EN

Stack Overflow用户

发布于 2017-02-20 21:44:13

您可以使用:

代码语言:javascript
复制
$('element').off()

这将禁用您正在侦听的组件的任何事件

票数 2
EN

Stack Overflow用户

发布于 2011-05-20 04:08:13

尝试使用disabled关键字。这样你就不必解除函数的绑定,只需禁止它被按下即可:

代码语言:javascript
复制
$('.more_comments_link').live('click', function() {
    $(this).attr("disabled", true);
    $(".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;
}); 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6064232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档