繁体   English   中英

removeAttr('id')清除#id,但点击仍然有效

[英]removeAttr('id') clears #id but still the clicks work

我有<div id="SocialInteract">

$('#SocialInteract').click(function() {

$('#SocialCount').load('sc.php');
$('#TeacherAttendance').removeAttr('id');
});

当我查看InspectElement时, #id已删除,但仍然需要单击。 我做错了什么?

由于该事件已附加到TeacherAttendance元素,因此您的click事件仍然会触发。

如果要分离click事件,则应使用off()unbind()

$('#TeacherAttendance').off('click');
$('#TeacherAttendance').unbind('click');

删除id不会删除已附加的click事件。 使用unbind()方法删除附加事件。

$('#TeacherAttendance').unbind("click");

编辑:

您应该使用off()作为它的更新对象。 unbind()仍然存在以实现向后兼容

$('#TeacherAttendance').off('click');

相关问题: 在jQuery中删除事件处理程序的最佳方法?

您将事件绑定到DOM元素,然后删除ID,但事件已注册。

使用off或unbind或将全局变量设置为turnoff / remove / doNothing。

.click()只是附加而忘记了。 不管该元素是否发生任何变化。

因此,您必须手动取消绑定事件。

.unbind('click');

要使事件绑定具有动态性,请将其攻击document并等待其冒泡:

$(document).on('click', #SocialInteract', function() {

$('#SocialCount').load('sc.php');
$('#TeacherAttendance').removeAttr('id');
});

这样,事件便被注册到document节点:如果在具有该ID的元素上触发了click事件,则它将触发。 如果没有,它不会。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM