我有一个div" d1"点击时,它将来自服务器的朋友请求加载到隐藏的div d2"",但是当我多次点击它时,它会反复追加相同的结果,我试过这个来帮助解决问题
if($("#d1").data('clicked')) {
// do nothing
}
else{
$("#d1").click(function(){
$("#d1").data('clicked', true);
// then call_server to get result and append to div2
}
但它失败了它总是附加相同的结果,我最终得到重复的重复列表
答案 0 :(得分:2)
你有几个选择,但一般的问题是,一旦有人点击div,事件仍然存在并存在。
你可以这样做:
$("#d1").on('click', function(){
// then call_server to get result and append to div2
$(this).off('click');
});
点击后删除该事件。 OR
你可以这样做..
$("#d1").one('click', function(){
$("#d1").data('clicked', true);
// then call_server to get result and append to div2
});
.one()方法将确保只调用一次函数,然后自动删除该事件。
然后,一旦用户收到新朋友请求的通知,您就可以使用另一个.one()方法重新激活div。
答案 1 :(得分:0)
如果我理解正确,您希望只调用一次Click事件。
$("#d1").click(function(){
$("#d1").data('clicked', true);
// then call_server to get result and append to div2
this.onclick = null;
}
答案 2 :(得分:0)
这应该这样做:
$("#d1").click(function(){
if($("#d1").data('clicked')) {
// do nothing
return;
} else {
$("#d1").data('clicked', true);
// then call_server to get result and append to div2
}
});
我仍然希望看到你如何打电话给你的ajax我认为你应该在你的问题帖子上发布你的ajax方法。您可以检查是否要拨打下一个10,20 ... (您的号码选择)记录。