在绑定或删除点击时 ATTR 失败

onbind or remove onclick attr failed

本文关键字:ATTR 失败 绑定 删除      更新时间:2023-09-26

警报不会触发,因为 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(),但不起作用。

您的代码有效 - onclick 属性在第一次单击触发被删除。但是,onclick在 jQuery 中的click之前触发,因此openClose始终在第一次触发,请参阅此示例。您会看到foo提醒仅在首次点击时显示。

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

要在加载时将其从.spoliertop元素中删除,您可以执行以下操作:

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

演示