我遇到问题解除绑定事件的事件,我将事件指定为使用on();
这是我的JS:
$(document).on('click','.reply-indicator a', function(e){
e.preventDefault();
var commentid = $(this).data('commentid');
$.ajax({
type: 'POST',
url: '?category=getreplies',
data:{
"commentid" : commentid
},
success: function(data){
$('.'+commentid+'subcomments').append(data);
}
});
return false;
});
我已经尝试了所有我想到的东西来从元素中删除click事件 我甚至为每个元素分配了一个id属性,以便能够专门定位元素,因为有几个:
$(document).off('click','#'+commentid+'indicator a');
$('#'+commentid+'indicator a').off();
$('#'+commentid+'indicator a').off('click');
$('#'+commentid+'indicator a').unbind('click');
但它不会松开回调函数中的事件,即使我尝试在ajax请求之前放置此代码但事件在回调函数之后仍然有效。我试图正确定位吗?
答案 0 :(得分:3)
尝试将类添加到您想要委托的元素,然后当您想要删除某些元素时,只需删除该类
//add delegate
$(document).on('click','.reply-indicator a.onclick', function(e){
...
//remove the class from the element so it no loger matches the delegate selector
$('#'+commentid+'indicator a').removeClass('onclick');