[英]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.