onbind或删除onclick attr失败

时间:2014-12-08 10:23:46

标签: javascript jquery

警报不会触发,因为缺少openClose()函数并且它会抛出错误。

<div class="spoilertop" onclick="openClose('cbd6c32c3118dbbdc3fbdc37e0805292')">

我如何解除绑定或更好地删除onclick标记?

$('.spoilertop').click(function(){
    $(this).attr('onclick','').unbind('click');

    alert('f');
})

我尝试了$(this).attr('onclick','').unbind('click');和e.preventDefault()但是没有用。

2 个答案:

答案 0 :(得分:2)

您的代码有效 - 在第一次点击后,移除了onclick属性。但是,onclick会在jQuery click之前触发,因此openClose将始终首次触发,请参阅this example。您会看到foo警报仅显示第一次点击。

要避免这种情况,您需要在加载时从元素中删除该属性,或者更好的是,将其从HTML中完全删除。

要从加载的.spoliertop元素中删除它,您可以执行以下操作:

$(function() {
    $('.spoilertop').attr('onclick','').unbind('click');
});

答案 1 :(得分:0)

$('.spoilertop').click(function(){
    $(this).unbind('click');
    $(this).removeAttr('onclick');
    alert('Off');
});

Demo