您好,登錄后才能下訂單哦!
本篇內容介紹了“javascript綁定事件的方法是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
綁定方法:1、直接在標簽中使用“onclick”屬性綁定事件;2、使用“對象.onclick=function(){事件}”語句綁定事件;3、使用“對象.attachEvent('click',function(){事件})”語句綁定事件。
本教程操作環境:windows7系統、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.事件監聽
<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事件處理程序,而不必給每個事件分別添加處理程序。
下面我們來看一個阿里巴巴筆試題的例子。
樣式以及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綁定事件的方法是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。