[英]How to add one click event handler for two different buttons without using jQuery?
當用戶打開模態時,有兩種方法可以關閉它,一種方法是按下方框右上角的“x”,或者按下取消按鈕。 這兩個按鈕都在同一個類名稱modal-hide
但也有modal-close
和modal-cancel
id。
var cancel = document.getElementById('modal-cancel');
var close = document.getElementById('modal-close');
cancel.onclick = function () {
//close window
}
close.onlick = function () {
//close window
}
實現事件處理程序的最佳方法是什么,這樣我就不必編寫兩個不同的onclick函數來執行相同的操作?
我根本不想使用jQuery!
首先,不要使用事件屬性! 請改用addEventListener( MDN )作為現代標准。 然后你應該定義一個單獨的處理函數(讓我們說onClick
)將它與你的元素綁定:
var cancelElt = document.getElementById('modal-cancel');
var closeElt = document.getElementById('modal-close');
var onClick = function () {
alert('Hello!');
};
cancelElt.addEventListener('click', onClick);
closeElt.addEventListener('click', onClick);
只需使用命名而不是匿名函數。 我使用下面的addEventListener而不是onclick。
var cancel = document.getElementById('modal-cancel');
var close = document.getElementById('modal-close');
var clickFunction = function() {
// close modal
}
cancel.addEventListener('click', clickFunction, false);
close.addEventListener('click', clickFunction, false);
基本上是一行的解決方案。
Array.prototype.forEach.call(document.querySelectorAll("#modal-cancel, #modal-close"), function(element) {
element.addEventListener("click", function() {
//close window
}, false);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.