[英]Remove all events binding inside a parent div using jquery
我有myclass
div,里面有许多具有不同事件绑定的子级。 在单击下面的“删除”时,我要删除其中所有子级的所有事件绑定。 但是下面的代码不起作用。
<div class="myclass">
<select class="selectable">
<option value="1">one</option>
<option value="2">two</option>
</select>
<!-- I have many more elements ~30 or so with events associated with them.... -->
<div id="askme">ask me</div>
</div>
<div class="xyz">i have event on this element too that should remain intact>/div>
<div id="remove">remove</div>
<script language="javascript">
$(document).on('ready page:load', function () {
$(document).on("change",".selectable", function(e) {
//something
});
$(document).on("click","#askme",function(e){
//something
});
//more events binding here.....
});
// Using http://api.jquery.com/off/
$("#remove").on('click', function (e) {
$(".myclass *").off(); //unbind event of all child under `myclass` parent div
});
</script>
当我单击“删除”时,我要删除与myclass
div中所有元素关联的所有事件。
我不想使用.one
与子元素一起调用事件一次。 因此,这超出了解决此问题的范围。
注意:我在文档中还有其他dom元素,这些元素应保持不变。 所以我无法取消文档级别的事件
这个答案来自上一篇文章如何使用JQuery删除父元素的子元素的所有事件处理程序
如果使用bind()附加事件,则可以使用unbind()。
$('#foo').children().unbind();
$('#foo').children('.class').unbind(); //You can give selector for limiting clildren
要么
如果使用on()绑定事件,请使用off()。
$('#foo').children().off();
$('#foo').children('class').off()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.