js的事件處理丶java教程網(js中事件)

  • 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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
簡單一點的頭像簡單一點
上一篇 2024-10-03 23:07
下一篇 2024-10-03 23:07

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • MQTT使用教程

    MQTT是一種輕量級的消息傳輸協議,適用於物聯網領域中的設備與雲端、設備與設備之間的數據傳輸。本文將介紹使用MQTT實現設備與雲端數據傳輸的方法和注意事項。 一、準備工作 在使用M…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Python3.6.5下載安裝教程

    Python是一種面向對象、解釋型計算機程序語言。它是一門動態語言,因為它不會對程序員提前聲明變量類型,而是在變量第一次賦值時自動識別該變量的類型。 Python3.6.5是Pyt…

    編程 2025-04-29
  • Deepin系統分區設置教程

    本教程將會詳細介紹Deepin系統如何進行分區設置,分享多種方式讓您了解如何規劃您的硬盤。 一、分區的基本知識 在進行Deepin系統分區設置之前,我們需要了解一些基本分區概念。 …

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29

發表回復

登錄後才能評論