js 多個事件的綁定及移除(包括原生寫法和 jquery 寫法)


 

需要打開控制台查看效果:

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js 多個事件的綁定及移除</title>
</head>
<body>


<button id="button">button</button>
<button id="unbind">unbind</button>

<script>
  window.onload = function() {
    var button = document.querySelector('#button');
    var unbind = document.querySelector('#unbind');

    // 1、使用匿名函數添加事件
    // 這種綁定沒有辦法移除, 除非移除全部 click 事件
    button.addEventListener('click', function(e) {
      console.log('click');
    });

    // 2、使用命名函數添加事件
    // 這種綁定方法可以通過函數引用作為參數移除
    button.addEventListener('click', click1);
    unbind.addEventListener('click', function(e) {
      button.removeEventListener('click', click1);
    });
  };

  function click1(e) {
    console.log('click1')
  }
</script>
</body>
</html>

  

點擊 button 再點擊 unbind,再點擊 button,會在控制台看到如下輸出:

也可以在 jsfiddle 查看:https://jsfiddle.net/rubys/xm0pa64n/14/

 

 

使用 jquery 的話,操作比較方便:

綁定:

$('xx').on('click.click_event', function() {});

  

取消綁定:

$('xx').unbind('click.click_event')

  

和我們平常寫的區別是多了個 點號和點號后面事件的標識名。

 

如果用 jquery,我們上面原生寫法可換成

// 以下是 jquery 綁定以及取消綁定事件的用法
  $(function() {
    // 綁定一個 click 事件
  	$('#button1').on('click', function(e) {
    	console.log('jquery button click');
    });
    
    // 綁定另外一個 click 事件(如果我們后面需要取消綁定的話,需要指定一個標識,這里是 test)
    $('#button1').on('click.test', function(e) {
    	console.log('jquery button click 1');
    });
    
    // 取消綁定 'test' click 事件
    $('#unbind1').click(function(e) {
      console.warn('jquery unbind');
    	$('#button1').unbind('click.test');
    })
  })

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM