jquery 取消DOM元素上的单击事件

dzjeubhm  于 2023-10-17  发布在  jQuery
关注(0)|答案(1)|浏览(98)

有没有可能,用Jquery,取消一个DOM元素上的点击事件,这个DOM元素将在这个取消代码之后被调用?这样做的目的是覆盖任何点击事件,即使它在代码后面出现。
谢谢

jQuery(document).ready(function( $ ){
    jQuery("#mydiv").click(function(e){
        // here how to  disable all other click events on #mydiv, called after or before this function and execute only lines below on click event
    })      
});
sh7euo9m

sh7euo9m1#

一个快速而肮脏的解决方案是将#mydiv替换为自身的克隆,只需更改ID。
由于mydiv将不再位于DOM中,因此它的click处理程序将不会在click时注册。

jQuery(document).ready(function($) {
  jQuery("#mydiv").replaceWith(jQuery("#mydiv").clone().prop("id","mydiv2"));
  
  jQuery("#mydiv2").click(function(e) {
    console.log("test 1");
  })

  jQuery("#mydiv").click(function(e) {
    console.log("test 2");
  })
});
#mydiv2{
  background:red;
  padding:10px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="mydiv">Test</div>

相关问题