Jquery Can';t删除()上的事件;

Jquery Can';t删除()上的事件;,jquery,Jquery,将事件从我分配给using on()的元素解除绑定时遇到问题 这是我的JS: $(document).on('click','.reply-indicator a', function(e){ e.preventDefault(); var commentid = $(this).data('commentid'); $.ajax({ type: 'POST', url: '?category=getreplies',

将事件从我分配给using 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');

但是它不会在callback函数中丢失事件,甚至当我尝试将此代码放在ajax请求之前时也不会,但是在回调函数之后事件仍然有效。我是否试图正确地将其作为目标?

尝试将一个类添加到您想要委托的元素中,然后当您想要删除某些元素时,只需删除该类即可

//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');

on
仅将事件绑定到您选择的元素(本例中为文档)。并且只有一个事件处理程序。这就是为什么
off
在这里不起作用的原因。@Ohgodwhy:我相信这里的问题是不同的。他试图删除对特定元素的点击,但不会删除任何内容,因为没有要删除的事件处理程序。