- 1、關於js事件捕獲的用法
- 2、JS中事件的調用
- 3、請簡單說明javascript中處理事件的步驟
- 4、java中js的事件使用—$(“p”).style(“background-color”,”red”)表示將網頁中所有p標籤的背景色設置為紅色
事件冒泡是一個從後代節點向祖先節點冒泡的過程,這個可以理解吧。
事件捕獲就正好相反,是一個從祖先節點到後點節點的過程。
IE只支持冒泡,不支持捕獲。
以標準瀏覽器為例:
div id=”d1″
div id=”d2″/div
/div
script
//按下邊的方法綁定事件,當點擊d2的時候console的順序是 d2 clicked,d1 clicked
//第三個參數是false,是綁定在冒泡階段
document.getElementById(‘d1’).addEventListener(‘click’, function(){
console.log(‘d1 clicked’);
}, false);
document.getElementById(‘d2’).addEventListener(‘click’, function(){
console.log(‘d2 clicked’);
}, false);
//按下邊的方法綁定事件,當點擊d2的時候console的順序是 d1 clicked,d2 clicked
//第三個參數是true,是綁定在捕獲階段
document.getElementById(‘d1’).addEventListener(‘click’, function(){
console.log(‘d1 clicked’);
}, true);
document.getElementById(‘d2’).addEventListener(‘click’, function(){
console.log(‘d2 clicked’);
}, true);
/script
javascript表達式是自右向左執行的,也就是說one.onclick=test(one);這句
首先執行的是test(one);所以頁面加載就會執行alert
通常這裡的寫法這樣:
one.onclick=function(){
alert(one.value);
};
或者
one.onclick = test;
Javascript事件處理程序的3種方式
產生了事件,我們就要去處理他,據馬海祥了解Javascript事件處理程序主要有3種方式:
1、HTML事件處理程序
即我們直接在HTML代碼中添加事件處理程序,如下面這段代碼:
input id=”btn1″ value=”按鈕” type=”button” onclick=”showmsg();”
script
function showmsg(){
alert(“HTML添加事件處理”);
}
/script
從上面的代碼中我們可以看出,事件處理是直接嵌套在元素裡頭的,這樣有一個毛病:就是html代碼和js的耦合性太強,如果哪一天我想要改變js中showmsg,那麼我不但要再js中修改,我還需要到html中修改,一兩處的修改我們能接受,但是當你的代碼達到萬行級別的時候,修改起來就需要勞民傷財了,所以,這個方式我們並不推薦使用。
2、DOM0級事件處理程序
即為指定對象添加事件處理,看下面的一段代碼
input id=”btn2″ value=”按鈕” type=”button”
script
var btn2= document.getElementById(“btn2”);
btn2.onclick=function(){
alert(“DOM0級添加事件處理”);
}
btn.onclick=null;//如果想要刪除btn2的點擊事件,將其置為null即可
/script
從上面的代碼中,我們能看出,相對於HTML事件處理程序,DOM0級事件,html代碼和js代碼的耦合性已經大大降低。但是,聰明的程序員還是不太滿足,期望尋找更簡便的處理方式,下面馬海祥就來說說第三種處理方法。
3、DOM2級事件處理程序
DOM2也是對特定的對象添加事件處理程序(具體可查看馬海祥博客的《JavaScript對象屬性的基礎教程指南》相關介紹),但是主要涉及到兩個方法,用於處理指定和刪除事件處理程序的操作:addEventListener()和 removeEventListener()。
它們都接收三個參數:要處理的事件名、作為事件處理程序的函數和一個布爾值(是否在捕獲階段處理事件),看下面的一段代碼:
input id=”btn3″ value=”按鈕” type=”button”
script
var btn3=document.getElementById(“btn3”);
btn3.addEventListener(“click”,showmsg,false);//這裡我們把最後一個值置為false,即不在捕獲階段處理,一般來說冒泡處理在各瀏覽器中兼容性較好
function showmsg(){
alert(“DOM2級添加事件處理程序”);
}
btn3.removeEventListener(“click”,showmsg,false);//如果想要把這個事件刪除,只需要傳入同樣的參數即可
/script
這裡我們可以看到,在添加刪除事件處理的時候,最後一種方法更直接,也最簡便。但是馬海祥提醒大家需要注意的是,在刪除事件處理的時候,傳入的參數一定要跟之前的參數一致,否則刪除會失效!
用 $(“#XXX”).css(“width”:”100%”); 註:.css()方法可以直接對單個的css屬性進行操作,比如操作某個對象的style裡面的高度屬性,$(“#X”).css(“height”:”50%”); 另外.css()方法中的參數還可以接受map,比如: .css();(火星人)6022
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/126243.html