分享jQuery的3種常見事件監(jiān)聽方式
前言:
在 Web 頁面經(jīng)常會有各種事件發(fā)生,事件發(fā)生后需要進(jìn)行一些特定處理,即執(zhí)行特定的函數(shù)或者語句。這就需要對事件進(jìn)行監(jiān)聽,監(jiān)聽事件的常見方式有以下三種,本文將通過實(shí)例來具體介紹。
1.HTML標(biāo)簽內(nèi)聯(lián)事件
實(shí)例1:單擊頁面 "Hello" 按鈕,彈出提示框顯示 Hello world!
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>無標(biāo)題文檔</title>
</head>
<body>
<button onclick="alert('Hello world!')">Hello</button>
</body>
</html>注:在實(shí)例1中,事件的監(jiān)聽代碼是放在 HTML 標(biāo)簽中,這種方式看起來比較直觀,但是這是一種不大提倡的事件監(jiān)聽方式。首先,將視圖代碼(HTML)與交互代碼(Javascript)相結(jié)合,意味著每當(dāng)需要更新功能時(shí),都必須編輯 HTML,這將給代碼后期的維護(hù)帶來很大麻煩。其次,它不具備可擴(kuò)展性。如果我們要將這個(gè)單擊功能附加到許多按鈕上,那么不僅要用一堆重復(fù)的代碼來增加頁面量,而且還會破壞可維護(hù)性。
2.用JavaScript實(shí)現(xiàn)事件監(jiān)聽
實(shí)例2:單擊頁面"Hello"按鈕,彈出提示框顯示Hello world!
<!doctype html>
<html>
<head>
<meta charset-"utf-8">
<title>無標(biāo)題文檔</title>
<script type="text/javascript">
window.onload = function {
var helloBtn = document.getElementByld("helloBtn"); ? ?
? ? ? ? ? ? helloBtn.onclick = function() {
? ? ? ? ? ? ? ? ? alert("Hello world!");
? ? ? ? ? ? }
? ? ? }
</script>
</head>
<body>
<button id="helloBtn">Hello</button>
</body>
</html>3.用jQuery實(shí)現(xiàn)事件監(jiān)聽
使用jQuery監(jiān)聽事件有很多種方法,如實(shí)例3所示。
實(shí)例3:單擊頁面 "Hello" 按鈕,彈出提示框顯示 Hello world!
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>無標(biāo)題文檔</title>
<script src="jquery-3.3.1.js"></script>
<script type="text/javascript">
$(function() {
//jQuery第一種監(jiān)聽事件方法
$("#helloBtn").click(function() {
alert("Hello world!");
});
//jQuery第二種監(jiān)聽事件方法
$("#helloBtn").bind("click",function() {
alert("Hello world!");
});
//jQuery第三種監(jiān)聽事件方法
$("#helloBtn").on("click",function() {
alert("Hello world!");
});
//jQuery第四種監(jiān)聽事件方法
$("body").on({
click: function() {
alert("Hello world!");
}
}, "button");
//jQuery第五種監(jiān)聽事件方法
$("pody").on("click", "button", function() {
alert("Hello world!");
});
});
</script>
</head>
<body>
<button id="helloBtn">Hello</button>
</body>
</html>注:下面具體分析實(shí)例3中用到的 jQuery 事件監(jiān)聽方法。
(1)第一種事件監(jiān)聽方法click(),是一種比較常見的、便捷的事件監(jiān)聽方法。
(2)第二種事件監(jiān)聽方法bind(),已被jQuery 3.0棄用。自jQuery 1.7以來被 on() 方法(即第三種事件監(jiān)聽方法)所取代,雖然在這里也能使用且不報(bào)錯(cuò),而且此方法之前比較常見,但是不鼓勵(lì)使用它。
(3)第三種事件監(jiān)聽方法on(),從jQuery 1.7開始,所有的事件綁定方法最后都是調(diào)用on() 方法來實(shí)現(xiàn)的,使用on() 方法實(shí)現(xiàn)事件監(jiān)聽會更快、更具一致性。
(4)第四種和第五種方法,監(jiān)聽的是 body 上所有 button 元素的 click 事件。DOM 樹里更高層的一個(gè)元素監(jiān)聽發(fā)生在它的 children 元素上的事件,這個(gè)過程叫作事件委托(event delegation)。感興趣的讀者可以查看官方幫助文檔。
到此這篇關(guān)于分享jQuery3種常見事件的監(jiān)聽方式的文章就介紹到這了,更多相關(guān)jQuery監(jiān)聽方式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
jquery超簡單實(shí)現(xiàn)手風(fēng)琴效果的方法
這篇文章主要介紹了jquery超簡單實(shí)現(xiàn)手風(fēng)琴效果的方法,只需要幾行代碼即可實(shí)現(xiàn)手風(fēng)琴效果的樣式變換功能,需要的朋友可以參考下2015-06-06
jQuery調(diào)用WebService的實(shí)現(xiàn)代碼
jQuery調(diào)用WebService的實(shí)現(xiàn)代碼,需要的朋友可以參考下。2011-06-06
基于jquery實(shí)現(xiàn)左右按鈕點(diǎn)擊的圖片切換效果
這篇文章主要介紹了基于jquery實(shí)現(xiàn)左右按鈕點(diǎn)擊的圖片切換效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2015-11-11
淺談ajax在jquery中的請求和servlet中的響應(yīng)
下面小編就為大家分享一篇淺談ajax在jquery中的請求和servlet中的響應(yīng),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01
基于jquery的選擇標(biāo)簽至文本域效果,可多選/可過濾重復(fù)/可限制個(gè)數(shù)的實(shí)現(xiàn)代碼
選擇標(biāo)簽至表單域插件, 基于jQuery, 可多選/可過濾重復(fù)/可限制個(gè)數(shù). 是以前的項(xiàng)目中用到過的一個(gè)項(xiàng)目, 當(dāng)初是用原生js東拼西湊的, 用jQuery重寫了下,已封裝成插件.2010-11-11
jQuery實(shí)現(xiàn)類似標(biāo)簽風(fēng)格的導(dǎo)航菜單效果代碼
這篇文章主要介紹了jQuery實(shí)現(xiàn)類似標(biāo)簽風(fēng)格的導(dǎo)航菜單效果代碼,涉及jquery鼠標(biāo)事件操作頁面元素的遍歷與樣式動態(tài)修改技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08

