繁体   English   中英

只执行一次jQuery ajax查询

[英]Only perform jQuery ajax query once

我怎样才能让jQuery只进行一次ajax查询?

现在,每当用户切换“评论(X)”时它就会联系服务器

// Replies - Toggle display of comments
$('.info .reply').click( function() {
    $('.reply', this.parentNode.parentNode).toggle();
    return false;
});

// Load comments
$('.info .reply', this).mousedown( function() {
    var id = $('form #id', this.parentNode.parentNode).val();
    $.ajax({ url: location.href, type: 'post', data: 'id=' + id, dataType: 'json',
        success: function(data) {
            for (var i in data) {
                // Do AJAX Updates
            }
        }
    });
    return false;
});

我想我可以在加载ajax数据之后以某种方式在这里放置一个unbind()事件,但我不知道在哪里!

谢谢你的帮助!

在for循环之后的success函数看起来像个好地方。

    success: function(data) {
        for (var i in data) {
            // Do AJAX Updates
        }
        $('.info .reply').unbind();
    }

编辑:只有你真的必须这样做,.one()似乎是一个更好的选择。

也许你正在寻找一个()

如果我是你,我会用$.data做到这一点:

// Load comments
$('.info .reply', this).mousedown( function() {
    var id = $('form #id', this.parentNode.parentNode).val();

    if (!$.data(this, 'commentsloaded')) {
        $.ajax({ url: location.href, type: 'post', data: 'id=' + id, dataType: 'json',
            success: function(data) {
                for (var i in data) {
                    $.data(this, 'commentsloaded', true);
                    // Do AJAX Updates
                }
            }
        });
    }
    return false;
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM