javascript事件的綁定基礎(chǔ)實(shí)例講解(34)
本文實(shí)例為大家分享了js事件綁定的具體代碼,供大家參考,具體內(nèi)容如下
<html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> window.onload = function(){ var btn01 = document.getElementById("btn01"); //為按鈕綁定一個(gè)單擊響應(yīng)函數(shù) /*btn01.onclick = function(){ alert(1); }; //再為按鈕綁定一個(gè)單擊響應(yīng)函數(shù) btn01.onclick = function(){ alert(2); };*/ /* * 使用 對(duì)象.事件 的形式不能同時(shí)為一個(gè)元素的同一個(gè)事件綁定多個(gè)處理函數(shù), * 如果綁定了多個(gè),則后邊的會(huì)將前邊的覆蓋掉 * * 如果需要同時(shí)為一個(gè)事件綁定多個(gè)響應(yīng)函數(shù),則可以使用 * addEventListener()這個(gè)方法來綁定響應(yīng)函數(shù) * 參數(shù): * 1.要綁定的事件(字符串 不要on) * 2.回調(diào)函數(shù)(事件觸發(fā)時(shí),該函數(shù)將會(huì)執(zhí)行) * 3.是否在捕獲階段觸發(fā)事件(都傳false) * * 使用這種方式可以同時(shí)為一個(gè)事件綁定多個(gè)響應(yīng)函數(shù), * 響應(yīng)函數(shù)按照綁定的順序執(zhí)行 * * 該方法不支持IE8及以下的瀏覽器 * 在這些瀏覽器中需要使用 attachEvent()方法來實(shí)現(xiàn)相同的功能 */ /*btn01.addEventListener("click",function(){ alert(1); },false); btn01.addEventListener("click",function(){ alert(2); },false); btn01.addEventListener("click",function(){ alert(3); },false);*/ /* * attachEvent() * - 參數(shù): * 1.事件的類型(字符串 要on) * 2.回調(diào)函數(shù) * * attachEvent() * - 可以同時(shí)為一個(gè)事件綁定多個(gè)響應(yīng)函數(shù),但是它的執(zhí)行順序不一定 * ie9 ie10 先綁定先執(zhí)行 * ie8 后綁定先執(zhí)行 * * 這個(gè)方法只支持IE10及以下的瀏覽器 */ /*btn01.attachEvent("onclick" , function(){ alert(1); });*/ /*btn01.attachEvent("onclick" , function(){ alert(2); }); btn01.attachEvent("onclick" , function(){ alert(3); });*/ /* * 在正常瀏覽器中使用addEventListener()來綁定 * 它的響應(yīng)函數(shù)中的this就是綁定事件的對(duì)象 * 而在IE中,使用的是attachEvent()來綁定的事件 * 而它的響應(yīng)函數(shù)中的this是window */ bind(btn01 , "click" , function(){ alert(this); }); }; /* * 自定義一個(gè)函數(shù),來兼容所有的瀏覽器 * 參數(shù): * obj 要綁定事件的對(duì)象 * eventStr 事件的字符串,不要on * callback 回調(diào)函數(shù),事件觸發(fā)時(shí)調(diào)用的函數(shù) */ function bind(obj , eventStr , callback){ if(obj.addEventListener){ //如果是正常瀏覽器 obj.addEventListener(eventStr , callback , false); }else{ //IE8 /* * attachEvent()中的回調(diào)函數(shù)的this是window,需要修改為obj * this是誰由函數(shù)的調(diào)用方式?jīng)Q定 * 1.以函數(shù)的形式調(diào)用,this是window * 2.以方法的形式調(diào)用,this是調(diào)用方法的對(duì)象 * 3.以構(gòu)造函數(shù)的形式調(diào)用,this是新創(chuàng)建的對(duì)象 * 4.使用call和apply調(diào)用時(shí),this是第一個(gè)參數(shù) */ obj.attachEvent("on"+eventStr , function(){ //在attchEvent()中不傳遞callback而是傳遞一個(gè)匿名函數(shù) //這樣在事件觸發(fā)時(shí),瀏覽器不會(huì)調(diào)用callback而是調(diào)用匿名函數(shù) //在匿名函數(shù)中來調(diào)用回調(diào)函數(shù) callback.call(obj); }); } } </script> </head> <body> <button id="btn01">點(diǎn)我一下</button> </body> </html>
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
淺談JavaScript Math和Number對(duì)象
這篇文章主要簡單介紹了JavaScript Math和Number對(duì)象的相關(guān)資料,需要的朋友可以參考下2015-01-01js 輸出內(nèi)容到新窗口具體實(shí)現(xiàn)代碼
js 輸出內(nèi)容一般都是在本窗口,如果要實(shí)現(xiàn)在新窗口的話該如何實(shí)現(xiàn)呢?下面與大家分享具體的代碼2013-05-05JS實(shí)現(xiàn)動(dòng)態(tài)增加和刪除li標(biāo)簽行的實(shí)例代碼
下面小編就為大家?guī)硪黄狫S實(shí)現(xiàn)動(dòng)態(tài)增加和刪除li標(biāo)簽行的實(shí)例代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10js實(shí)現(xiàn)改進(jìn)的仿藍(lán)色論壇導(dǎo)航菜單效果代碼
這篇文章主要介紹了js實(shí)現(xiàn)改進(jìn)的仿藍(lán)色論壇導(dǎo)航菜單效果代碼,涉及JavaScript頁面元素的遍歷及樣式動(dòng)態(tài)變換技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09JavaScript簡單判斷復(fù)選框是否選中及取出值的方法
這篇文章主要介紹了JavaScript簡單判斷復(fù)選框是否選中及取出值的方法,涉及javascript遍歷復(fù)選框及元素取值的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08Javasript設(shè)計(jì)模式之鏈?zhǔn)秸{(diào)用詳解
這篇文章主要為大家詳細(xì)介紹了Javasript設(shè)計(jì)模式之鏈?zhǔn)秸{(diào)用的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04JS中用三種方式實(shí)現(xiàn)導(dǎo)航菜單中的二級(jí)下拉菜單
我們在淘寶、搜狐等大型網(wǎng)站上都可以看到使用的一些二級(jí)下拉菜單,比如下面這張圖片。那么如何實(shí)現(xiàn)導(dǎo)航菜單欄中的二級(jí)下拉菜單呢?下面小編給大家分享JS中用三種方式實(shí)現(xiàn)導(dǎo)航菜單中的二級(jí)下拉菜單,感興趣的朋友一起看看吧2016-10-10