溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

javascript綁定事件的方法是什么

發(fā)布時間:2021-06-17 16:17:50 來源:億速云 閱讀:134 作者:chen 欄目:web開發(fā)

本篇內容介紹了“javascript綁定事件的方法是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

綁定方法:1、直接在標簽中使用“onclick”屬性綁定事件;2、使用“對象.onclick=function(){事件}”語句綁定事件;3、使用“對象.attachEvent('click',function(){事件})”語句綁定事件。

本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。

javascript綁定事件的方法

首先,我先來介紹我們平時綁定事件的三種方法。

1.直接在標簽中綁定事件

<button onclick="open()">按鈕</button>

<script>
function open(){
	alert(1)
}
</script>

2.使用JavaScript對象綁定事件

<button id="btn">按鈕</button>
<script>
document.getElementById('btn').onclick = function(){
	alert(1)
}
</script>

3.事件監(jiān)聽

<button id="btn">按鈕</button>
<script>
document.getElementById('btn').addEventListener('click',function(){
	alert(1)
})
//兼容IE
document.getElementById('btn').attachEvent('click',function(){
	alert(1)
})
</script>

擴展資料:###事件委托

對“事件處理程序過多”問題的解決方案就是事件委托。事件委托利用了事件冒泡,只制定一個事件處理程序,就可以管理某一類型的所有事件。例如click事件一直會冒泡到document層。也就是我們可以只指定onclick事件處理程序,而不必給每個事件分別添加處理程序。

下面我們來看一個阿里巴巴筆試題的例子。

javascript綁定事件的方法是什么

樣式以及DOM結構

 <style>
   * {
     padding: 0;
     margin: 0;
   }
   
   .head, li div {
     display: inline-block;
     width: 70px;
     text-align: center;
   }

   li .id, li .sex, .id, .sex {
     width: 15px;
   }

   li .name, .name {
     width: 40px;
   }

   li .tel, .tel {
     width: 90px;
   }

   li .del, .del {
     width: 15px;
   }

   ul {
     list-style: none;
   }

   .user-delete {
     cursor: pointer;
   }

 </style>
</head>

<body>
<div id="J_container">
	<div class="record-head">
	  <div class="head id">序號</div><div class="head name">姓名</div><div class="head sex">性別</div><div class="head tel">電話號碼</div><div class="head province">省份</div><div class="head">操作</div>
	</div>
   <ul id="J_List">
     <li><div class="id">1</div><div class="name">張三</div><div class="sex">男</div><div class="tel">13788888888</div><div class="province">浙江</div><div class="user-delete">刪除</div></li>
     <li><div class="id">2</div><div class="name">李四</div><div class="sex">女</div><div class="tel">13788887777</div><div class="province">四川</div><div class="user-delete">刪除</div></li>
     <li><div class="id">3</div><div class="name">王二</div><div class="sex">男</div><div class="tel">13788889999</div><div class="province">廣東</div><div class="user-delete">刪除</div></li>
   </ul>
 </div>
 </body>

**不用事件委托。**而這種方法造成的代價是,性能的大量浪費。如果是成千上萬條數據,頁面將會嚴重卡頓,甚至崩潰。

function Contact(){
    this.init();
}
	

Contact.prototype.init = function(){
	var userdel = document.querySelectorAll('.user-delete');
	for(var i=0;i<lis.length;i++){
		(function(j){
			userdel[j].onclick = function(){
	userdel[j].parentNode.parentNode.removeChild(userdel[j].parentNode);
			}
		})(i);
	}	
}

new Contact();

使用事件委托,只綁定一次事件,大大減少了性能的損耗。也是在需要大量事件處理程序中一種非常好的解決方式。

function Contact(){
    this.init();
}
	
Contact.prototype.init = function(){
	var lis = document.querySelector('#J_List');
	lis.addEventListener('click', function(e){
		var target = e.target || e.srcElement;
		if (!!target && target.className.toLowerCase()==='user-delete') {
		}
	})
}

new Contact();

“javascript綁定事件的方法是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI