Javascript 连接到子对象时删除onclick
我有以下代码:Javascript 连接到子对象时删除onclick,javascript,jquery,onclick,Javascript,Jquery,Onclick,我有以下代码: layoutOverlaysBldg = $("#layout-overlays-bldg") layoutOverlaysBldg.on("click", "div", function(event) { var floor; console.log("floornum: " + this.dataset.floornum); floor = parseInt(this.dataset.floornum); ... $("#choose-floor").fa
layoutOverlaysBldg = $("#layout-overlays-bldg")
layoutOverlaysBldg.on("click", "div", function(event) {
var floor;
console.log("floornum: " + this.dataset.floornum);
floor = parseInt(this.dataset.floornum);
...
$("#choose-floor").fadeOut();
$("#choose-apt").fadeIn();
});
稍后-根据我从数据库返回的数据-我想从一些div中删除一些
.on(“单击”,“div”,…)
。我已经有了正确的div选择器,但是我不知道如何删除click事件。在选择了正确的div之后,我尝试了.off(“单击”)
,但没有效果。这里的问题是因为您使用的是委托事件。您可以为所有子元素添加或删除事件,但不能为给定的div
选择器的单个子元素添加或删除事件
记住这一点,最简单的方法就是根据类添加事件,然后根据需要在子类上添加和删除该类。大概是这样的:
layoutOverlaysBldg = $("#layout-overlays-bldg")
layoutOverlaysBldg.on("click", "div.clickable", function(event) {
// your code...
});
然后,您可以通过添加或删除
.clickable
类来启用/禁用子div上的事件。您可以这样尝试:
例如:
<div id="test">
<div id="first">first</div>
<div id="second">second</div>
</div>
<div onclick="unbindSecondDiv();">UNBIND</div>
<script>
function unbindSecondDiv()
{
test = $("#second")
test.unbind("click");
alert('Selected Area Click is Unbind');
}
$(document).ready(function(){
//BIND SELECTED DIV CLICK EVENT
test = $("#test > div")
test.bind("click" , function(event) {
alert($(this).attr('id'));
});
});
</script>
第一
第二
解开
函数unbindSecondDiv()
{
测试=$(“#秒”)
测试。解除绑定(“单击”);
警报(“选定区域单击解除绑定”);
}
$(文档).ready(函数(){
//绑定所选DIV单击事件
测试=$(“#测试>div”)
test.bind(“单击”),函数(事件){
警报($(this.attr('id'));
});
});
在上面的示例中,选定的DIV元素click事件是bind
执行函数unbindSecondDiv()后,第二个DIV click事件将被解除绑定
请尝试一下,可能会对您有所帮助。要解除绑定,请单击您需要执行解除绑定(“单击”)对不起,我花了一段时间对其进行了测试,但这非常有效,而且非常简单。