欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript事件監(jiān)聽器addEventListener()方法和一些基本事件詳解

 更新時間:2024年10月14日 10:36:12   作者:千帆過盡皆不是  
這篇文章主要介紹了JavaScript事件監(jiān)聽器addEventListener()方法和一些基本事件,這篇文章主要介紹了JavaScript事件監(jiān)聽器addEventListener()方法和一些基本事件的相關資料,需要的朋友可以參考下

一. HTML DOM 事件

什么是事件?

事件是在編譯的過程中發(fā)生的事情,當事件發(fā)生的時候計算機可以自動采取某種行動(即運行一些代碼,通常是我們所制定的函數)。常見的事件有:

  • 單擊事件
  • 雙擊事件
  • 鼠標劃入
  • 鼠標劃出
  • 鼠標懸停
  • 某個鍵盤被按下
  • 某個鍵盤被松開

1.1  鼠標事件

onclick在對象被點擊的時候發(fā)生
ondblclick在對象被雙擊的時候發(fā)生
onmousedown在鼠標被按下的時候發(fā)生
onmouseup在鼠標被松開的時候發(fā)生
onmousemove在鼠標被移動的時候發(fā)生
onmouseover在鼠標指針被移動到指定元素的時候發(fā)生
onmouseout在鼠標指針被移出到指定元素的時候發(fā)生

1.2  鍵盤事件

onkeydown鍵盤被按下的時候觸發(fā)事件
onkeypress在鍵盤按下一個鍵,然后再松開的時候會觸發(fā)
onkeyup當鍵盤上的一個鍵被松開的時候會觸發(fā)

1.3 表單事件

onblur元素失去焦點時觸發(fā)
onfocus元素獲取焦點時觸發(fā)
oninput元素獲取用戶輸入時觸發(fā)
onreset表單重置時觸發(fā)
onselect用戶選取文本時觸發(fā) (比如 <input> 和 <textarea> 中的內容)
onsubmit表單提交時觸發(fā)

1.4 其他相對常見的事件

onscroll

指定元素滑輪發(fā)生滾動的時候會觸發(fā)事件

onresize

窗口或框架被重新調整大小。

onchange該事件在表單元素的內容改變時觸發(fā)( <input>, <keygen>, <select>, 和 <textarea>)

二.  addEventListener() 方法的介紹和使用

addEventListener() 方法用于向指定元素添加事件句柄。當計算機屬性檢測到事件發(fā)生的時候,運行一些代碼,通常是我們所制定的函數。

2.1  語法知識

element.addEventListener(event, function, useCapture)

event:

必須填寫不可省略。

注意: 在 addEventListener() 方法中不能使用 "on" 前綴,會報錯。 例如,我們要使用 "click" ,而不是使用 "onclick"。

function:

必須填寫不可省略。

事件發(fā)生時運行的函數。

useCapture:

可以省略不寫,默認值是 false

true :使用事件捕獲

false :使用事件冒泡

2.2  addEventListener() 方法的性質

  • 可以使用外部函數,也可以使用隱函數
  • 向一個元素添加多個相同類型的事件處理程序。
  • 向一個元素添加多個事件處理程序
  • 可以向任何 DOM 對象添加事件處理程序而非僅僅 HTML 元素,例如 window 對象。
  • 可以對事件進行冒泡或者捕獲
  • 可以被刪除。(removeEventListener() 方法刪除事件監(jiān)聽器)

2.2.1 使用外部函數與隱函數

使用外部函數

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>測試</title>
</head>
<body>
    <button id="btn">測試按鈕</button>
    <p id="demo"></p>
</body>
<script>
    document.getElementById("btn").addEventListener("click",DEMO);
    
    function DEMO(){
        document.getElementById("demo").innerHTML = "測試成功";
    }
</script>
</html>

使用隱函數

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>測試</title>
</head>
<body>
    <button id="btn">測試按鈕</button>
    <p id="demo"></p>
</body>
<script>
    document.getElementById("btn").addEventListener("click", function(){
        document.getElementById("demo").innerHTML = "測試成功";
    });
</script>
</html>

2.2.2 向一個元素添加多個事件處理程序

addEventListener() 方法允許向相同元素添加多個事件,同時不覆蓋已有事件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>測試</title>
</head>
<body>
    <button id="btn">測試按鈕</button>
    <p id="demo"></p>
</body>
<script>
    document.getElementById("btn").addEventListener("click",DEMO);
    document.getElementById("btn").addEventListener("click",myFunction);
    
    function DEMO(){
        alert("第一個函數測試成功")
    }

    function myFunction(){
        alert("第二個函數測試成功")
    }
</script>
</html>

2.2.3 向一個元素添加多個相同類型的事件處理程序

需要打開控制臺查看結果。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>測試</title>
</head>
<body>
    <button id="btn">測試按鈕</button>
    <p id="demo"></p>
</body>
<script>
    let btn =  document.getElementById("btn");
    btn.addEventListener("mouseover", myFunctionOver);
    btn.addEventListener("click", DEMO);
    btn.addEventListener("mouseout", myFunctionOut);

    function myFunctionOver(){
        console.log("mouseover","鼠標移入")
    }

    function DEMO(){
        console.log("click","鼠標點擊")
    }

    function myFunctionOut(){
        console.log("mouseout","鼠標移出")
    }
</script>
</html>

2.2.4 監(jiān)測window 對象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>測試</title>
</head>
<body>
    <button id="btn">測試按鈕</button>
    <p id="demo"></p>
</body>
<script>
    window.addEventListener("resize", function(){
        document.getElementById("demo").innerHTML = "頁面寬度或者高度改變";
    });
</script>
</html>

2.2.5 捕獲與冒泡

冒泡:從內到外

捕獲:從外到內

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>測試</title>

    <style>
        div 
        {
            background-color: coral;
            border: 1px solid;
            padding: 50px;
        }
    </style>
</head>
<body>
    <div id="myDiv">
        <p id="myP">點擊該段落, 我是冒泡</p>
    </div><br>
    <div id="myDiv2">
        <p id="myP2">點擊該段落, 我是捕獲</p>
    </div>
</body>
<script>
   document.getElementById("myP").addEventListener("click", function() 
    {
        alert("你點擊了 P 元素!");
    }, false);

    document.getElementById("myDiv").addEventListener("click", function()
    {
        alert("你點擊了 DIV 元素!");
    }, false);

    document.getElementById("myP2").addEventListener("click", function() 
    {
        alert("你點擊了 P 元素!");
    }, true);
    
    document.getElementById("myDiv2").addEventListener("click", function() 
    {
        alert("你點擊了 DIV 元素!");
    }, true);
</script>
</html>

2.2.6 可以被刪除

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>測試</title>
</head>
<body>
    <button id="btn">測試按鈕</button>
    <br>
    <br>
    <button onclick="shut()">關閉監(jiān)測按鈕</button>
    <p id="demo"></p>
</body>
<script>
    document.getElementById("btn").addEventListener("click",DEMO);
    
    function DEMO(){
        document.getElementById("demo").innerHTML = "測試成功";
        alert("測試成功")
    }
    
    function shut(){
        document.getElementById("btn").removeEventListener("click", DEMO);
        document.getElementById("demo").innerHTML = "";
        alert("監(jiān)測關閉,顯示內容為空,再次點擊測試按鈕沒有反應")
    }

</script>
</html>

三. 小探討

        如果大家有興趣的話,可以自己測試一下   addEventListener() 方法的傳參效果。

PS:DEMO是"demonstration"的縮寫。DEMO的中文含意為“示范”、“展示”、“樣片”、“樣稿”、“原型”,常被用來稱呼具有示范或展示功能及意味的事物。

到此這篇關于JavaScript事件監(jiān)聽器addEventListener()方法和一些基本事件詳解的文章就介紹到這了,更多相關JS事件監(jiān)聽器addEventListener()方法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Jquery作者John Resig自己封裝的javascript 常用函數

    Jquery作者John Resig自己封裝的javascript 常用函數

    Jquery作者John Resig自己封裝的常用函數, 大家可以參考下。
    2009-11-11
  • 前端js?sm2實現加密簡單代碼舉例

    前端js?sm2實現加密簡單代碼舉例

    在Vue項目中實現數據加密,首先需要安裝SM2加密庫,如js-sm2或sm-crypto,通過npm或yarn進行安裝后,在Vue組件或文件中引入該庫,并使用其提供的加密、解密功能,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-09-09
  • JS實現圖片放大縮小的方法

    JS實現圖片放大縮小的方法

    這篇文章主要介紹了JS實現圖片放大縮小的方法,結合實例形式分析了javascript動態(tài)操作頁面元素屬性的相關技巧,需要的朋友可以參考下
    2017-02-02
  • ES6 exports與import導出模塊使用基礎示例

    ES6 exports與import導出模塊使用基礎示例

    這篇文章主要為大家介紹了ES6 exports與import導出模塊使用基礎示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • 微信小程序數字滾動插件使用詳解

    微信小程序數字滾動插件使用詳解

    這篇文章主要介紹了微信小程序數字滾動插件的使用方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • js打印紙函數代碼(遞歸)

    js打印紙函數代碼(遞歸)

    js打印紙函數代碼,獲取并設置打印紙的具體信息的代碼,需要的朋友可以參考下。
    2010-06-06
  • JavaScript中數組去重的5種方法

    JavaScript中數組去重的5種方法

    這篇文章主要介紹了JavaScript中數組去重的5種方法,文中講解非常詳細,實例代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • 解決Layui當中的導航條動態(tài)添加后渲染失敗的問題

    解決Layui當中的導航條動態(tài)添加后渲染失敗的問題

    今天小編就為大家分享一篇解決Layui當中的導航條動態(tài)添加后渲染失敗的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • Bootstrap CSS組件之下拉菜單(dropdown)

    Bootstrap CSS組件之下拉菜單(dropdown)

    這篇文章主要為大家詳細介紹了Bootstrap CSS組件之下拉菜單(dropdown),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • 微信小程序自定義tabbar實現突出樣式詳解流程

    微信小程序自定義tabbar實現突出樣式詳解流程

    tabBar相對而言用的還是比較多的,但是用起來并沒有難,下面這篇文章主要給大家介紹了關于微信小程序全局配置之tabBar的相關資料,文中通過圖文以及示例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-01-01

最新評論