jquery 有没有什么原因先解除绑定,然后再绑定事件?

brc7rcf0  于 2023-06-29  发布在  jQuery
关注(0)|答案(1)|浏览(151)

例如,

$(".bundle").unbind("click")
  .bind("click", function() {
    // complete your task onclick here
  });

在这里取消绑定的目的是什么?与只有

.bind("click", function(){

})
qacovj5a

qacovj5a1#

首先,bind()unbind()都是deprecated,有利于on()off()
对于你的问题,bind()/on()是相加的。每次调用它们时,它们都会添加一个新的事件侦听器。

$(".bundle")
  .on("click", () => {
    console.log("Click handled by listener #1");
  });
  
$(".bundle")
  .on("click", () => {
    console.log("Click handled by listener #2");
  });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class="bundle">Click me</button>

使用unbind()/off()的原因是删除以前的侦听器。

$(".bundle")
  .on("click", () => {
    console.log("Click handled by listener #1");
  });
  
$(".bundle")
  .off("click")  
  .on("click", () => {
    console.log("Click handled by listener #2");
  });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class="bundle">Click me</button>

相关问题