[英]removeAttr('id') clears #id but still the clicks work
我有<div id="SocialInteract">
$('#SocialInteract').click(function() {
$('#SocialCount').load('sc.php');
$('#TeacherAttendance').removeAttr('id');
});
当我查看InspectElement时, #id
已删除,但仍然需要单击。 我做错了什么?
删除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.