警报不会触发,因为缺少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()但是没有用。
答案 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');
});