国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
關(guān)鍵要點(diǎn)
瀏覽器事件
scroll事件
文檔加載事件
ready事件
鍵盤(pán)事件
keyupkeydown事件
keypress事件
鼠標(biāo)事件
基于點(diǎn)擊的事件
基于移動(dòng)的事件
mousemovehover事件
表單事件
blurfocus、focusinfocusout事件
select、changesubmit事件
jQuery 3中的更改
最后的想法
jQuery事件的常見(jiàn)問(wèn)題解答 (FAQ)
如何阻止jQuery中的事件冒泡?
jQuery中的.bind().live()方法有什么區(qū)別?
如何在jQuery中以編程方式觸發(fā)事件?
jQuery中的事件委托是什么,為什么它有用?
如何阻止jQuery中事件的默認(rèn)操作?
jQuery中的.click().on('click')有什么區(qū)別?
如何在jQuery中檢測(cè)雙擊事件?
如何將多個(gè)事件綁定到j(luò)Query中的元素?
如何在jQuery中取消綁定事件處理程序?
如何在jQuery中檢測(cè)右鍵單擊事件?
首頁(yè) web前端 js教程 全面了解jQuery中的事件

全面了解jQuery中的事件

Feb 18, 2025 am 09:08 AM

A Comprehensive Look at Events in jQuery

本文由Wern Ancheta和Camilo Reyes共同評(píng)審。感謝所有SitePoint的同行評(píng)審員,使SitePoint的內(nèi)容達(dá)到最佳狀態(tài)!

jQuery能夠捕捉網(wǎng)頁(yè)中幾乎所有用戶交互行為,將其定義為事件。事件的重要性在于,它們?cè)试S您根據(jù)用戶的操作做出相應(yīng)的響應(yīng)。例如,您可以編寫(xiě)代碼,根據(jù)按鈕點(diǎn)擊或滾動(dòng)事件來(lái)更改網(wǎng)頁(yè)的背景顏色。

jQuery有很多快捷方法,例如contextmenu()、hover()keyup(),用于處理不同的事件。除了專(zhuān)用方法外,jQuery還提供了一個(gè)通用的on方法,允許您為任何事件附加處理程序:on('eventName', handler)。請(qǐng)記住,這些方法只是標(biāo)準(zhǔn)DOM事件的包裝器,您可以在純JavaScript中為這些事件添加處理程序。

本教程將快速瀏覽所有這些事件方法(分為五大類(lèi)),并討論使用它們時(shí)的最佳實(shí)踐。

關(guān)鍵要點(diǎn)

  • jQuery事件捕獲用戶交互,從而實(shí)現(xiàn)響應(yīng)式和交互式Web應(yīng)用程序。使用像.on()這樣的方法來(lái)附加事件處理程序。
  • jQuery中的瀏覽器事件包括處理錯(cuò)誤、調(diào)整窗口大小和滾動(dòng),其中較新版本中某些特定方法已棄用,強(qiáng)調(diào)使用.on('eventName', handler)'。
  • 文檔加載事件確保腳本僅在DOM完全準(zhǔn)備好后運(yùn)行,避免與未初始化元素相關(guān)的錯(cuò)誤。
  • jQuery中的鍵盤(pán)和鼠標(biāo)事件可處理各種交互,從按鍵到鼠標(biāo)移動(dòng),方法包括keydown()、keyup()click()mousemove()。
  • 表單事件處理表單內(nèi)的用戶輸入和交互,jQuery提供專(zhuān)門(mén)的事件來(lái)有效地管理焦點(diǎn)、更改和提交。

瀏覽器事件

此類(lèi)別包含三個(gè)事件:error、resizescroll。當(dāng)諸如圖像之類(lèi)的元素加載不正確時(shí),會(huì)觸發(fā)error事件。自jQuery 1.8版以來(lái),其快捷方法已被棄用,因此您現(xiàn)在應(yīng)該改用on('error', handler)。

resize事件

每當(dāng)瀏覽器窗口的大小發(fā)生變化時(shí),都會(huì)觸發(fā)此事件。不同的瀏覽器可以根據(jù)實(shí)現(xiàn)方式以不同的方式調(diào)用resize處理程序。Internet Explorer和基于WebKit的瀏覽器會(huì)連續(xù)調(diào)用處理程序,而像Opera這樣的瀏覽器只在resize事件結(jié)束時(shí)調(diào)用它。

下面的代碼片段根據(jù)窗口寬度交換圖像src。

$(window).resize(function() {
  var windowWidth = $(window).width();
  if (windowWidth < 768) {
    $("img").attr("src", "image-src-here.jpg");
    // 此處更改圖像src。
  }
});

此CodePen演示展示了事件的實(shí)際效果:

查看CodePen演示

scroll事件

當(dāng)用戶滾動(dòng)到特定元素中的不同位置時(shí),元素可以觸發(fā)此事件。除了window對(duì)象外,任何帶有滾動(dòng)條的元素都可以觸發(fā)此事件。例如,任何將overflow屬性設(shè)置為scroll的元素或任何可滾動(dòng)的iframe都可以觸發(fā)此事件。

請(qǐng)記住,每當(dāng)滾動(dòng)位置發(fā)生變化時(shí),都會(huì)調(diào)用處理程序。滾動(dòng)的起因無(wú)關(guān)緊要。它可以通過(guò)按下箭頭鍵、單擊或拖動(dòng)滾動(dòng)條或使用鼠標(biāo)滾輪來(lái)觸發(fā)。在下面的代碼中,我們檢查用戶是否向下滾動(dòng)超過(guò)500像素并執(zhí)行某些操作。

$(window).resize(function() {
  var windowWidth = $(window).width();
  if (windowWidth < 768) {
    $("img").attr("src", "image-src-here.jpg");
    // 此處更改圖像src。
  }
});

在下面的CodePen演示中,如果您繼續(xù)滾動(dòng)并到達(dá)接近底部的位置,您應(yīng)該會(huì)看到一個(gè)通知,告訴您您幾乎到達(dá)了網(wǎng)頁(yè)的底部:

查看CodePen演示

文檔加載事件

jQuery有三種方法,這三種方法根據(jù)文檔或DOM的狀態(tài)被觸發(fā)。它們是loadunloadready。

load()可用于將處理程序附加到加載外部資源(例如圖像、腳本、iframe和window對(duì)象本身)的任何元素。當(dāng)它所附加的元素及其所有子元素完全加載后,該事件就會(huì)觸發(fā)。當(dāng)與圖像一起使用時(shí),它會(huì)帶來(lái)一些問(wèn)題。首先,它不會(huì)正確地向上冒泡DOM樹(shù)。第二個(gè)問(wèn)題是它既不可靠也不跨瀏覽器。

當(dāng)用戶從網(wǎng)頁(yè)導(dǎo)航離開(kāi)時(shí),會(huì)觸發(fā)unload事件。這可能是因?yàn)橛脩魡螕袅随溄?,在地址欄中鍵入了新的URL或關(guān)閉了瀏覽器窗口。頁(yè)面重新加載也會(huì)觸發(fā)此事件。請(qǐng)注意,使用preventDefault()不會(huì)取消unload事件。此外,大多數(shù)瀏覽器都會(huì)忽略此事件處理程序內(nèi)部對(duì)alert()、confirm()prompt()的調(diào)用,這意味著下面的代碼將不起作用:

$(window).scroll(function() {
  if ($(window).scrollTop() >= 500) {
    $("#alert").text("您已經(jīng)滾動(dòng)足夠了!");
    // 更新警報(bào)框內(nèi)的文本。
  }
});

自1.8版以來(lái),load()unload()都已棄用。

ready事件

在大多數(shù)情況下,在腳本能夠毫無(wú)問(wèn)題地運(yùn)行之前,不需要所有元素(如圖像)都完全加載。您需要確保的是DOM層次結(jié)構(gòu)已完全構(gòu)建。ready事件為您處理了這一點(diǎn)。僅在DOM準(zhǔn)備好后才會(huì)運(yùn)行附加到此事件的任何處理程序。在處理程序內(nèi)部,您可以運(yùn)行jQuery代碼或?qū)⑹录幚沓绦蚋郊拥狡渌?,而無(wú)需擔(dān)心。

下面的CodePen演示加載高分辨率圖像。您會(huì)注意到,DOM在圖像完全加載之前就已準(zhǔn)備好。

查看CodePen演示

如果您的代碼依賴(lài)于某些CSS樣式屬性的值,則應(yīng)首先在運(yùn)行它之前提供對(duì)相應(yīng)樣式表或嵌入式樣式的引用。

鍵盤(pán)事件

鍵盤(pán)事件可以由任何用戶與鍵盤(pán)的交互觸發(fā)。每個(gè)此類(lèi)事件都將包含有關(guān)所按按鍵和事件類(lèi)型的信息。jQuery中有三種鍵盤(pán)事件快捷方式——keydown()、keyup()keypress()

keyupkeydown事件

顧名思義,當(dāng)用戶釋放鍵盤(pán)上的按鍵時(shí),會(huì)觸發(fā)keyup;當(dāng)用戶按下鍵盤(pán)上的按鍵時(shí),會(huì)觸發(fā)keydown。這兩個(gè)事件的處理程序都可以附加到任何元素,但只有當(dāng)前具有焦點(diǎn)的元素上的處理程序才會(huì)被觸發(fā)。

建議使用事件對(duì)象的which屬性來(lái)確定按下了哪個(gè)鍵。這是因?yàn)闉g覽器使用不同的屬性來(lái)存儲(chǔ)此信息,而jQuery會(huì)規(guī)范化which屬性以可靠地檢索此信息。

另一件值得記住的事情是,這兩個(gè)事件不區(qū)分<kbd>a</kbd><kbd>shift a</kbd>。在后一種情況下,<kbd>shift</kbd><kbd>a</kbd>分別單獨(dú)注冊(cè)。在下面的代碼中,我向用戶顯示一個(gè)警報(bào)框,該警報(bào)框注冊(cè)任何keydown事件。當(dāng)按下<kbd>y</kbd>鍵時(shí),將從DOM中刪除特定元素。

$(window).resize(function() {
  var windowWidth = $(window).width();
  if (windowWidth < 768) {
    $("img").attr("src", "image-src-here.jpg");
    // 此處更改圖像src。
  }
});

查看CodePen演示

keypress事件

此事件類(lèi)似于keydown事件。一個(gè)主要區(qū)別是,修飾符和非打印鍵(如<kbd>Shift</kbd>、<kbd>Esc</kbd>等)不會(huì)觸發(fā)keypress事件。當(dāng)我說(shuō)你不應(yīng)該使用keypress事件來(lái)捕獲特殊按鍵(如箭頭鍵)時(shí),我再怎么強(qiáng)調(diào)也不為過(guò)。當(dāng)您想知道輸入了哪個(gè)字符(例如A或a)時(shí),應(yīng)使用keypress

下面的代碼片段根據(jù)按下的鍵隱藏元素:

$(window).scroll(function() {
  if ($(window).scrollTop() >= 500) {
    $("#alert").text("您已經(jīng)滾動(dòng)足夠了!");
    // 更新警報(bào)框內(nèi)的文本。
  }
});

查看CodePen演示

鼠標(biāo)事件

當(dāng)用戶使用指向設(shè)備(如鼠標(biāo))進(jìn)行交互時(shí),會(huì)觸發(fā)鼠標(biāo)事件。這些事件可以基于點(diǎn)擊(如clickdblclickcontextmenu)或基于移動(dòng)(如mouseenter、mouseleavemousemove)。在本節(jié)中,我將簡(jiǎn)要討論所有這些事件,并包含一些演示來(lái)說(shuō)明它們之間細(xì)微的差別。

基于點(diǎn)擊的事件

jQuery中定義了五種基于點(diǎn)擊的事件方法。mousedownmouseup事件(從名稱(chēng)可以看出)分別在用戶按下和釋放鼠標(biāo)按鈕位于元素上時(shí)觸發(fā)。另一方面,只有當(dāng)鼠標(biāo)按鈕在指定元素上按下并隨后釋放時(shí),才會(huì)觸發(fā)click事件。

dblclick稍微復(fù)雜一些。對(duì)于要注冊(cè)為dblclick的事件,在某個(gè)系統(tǒng)相關(guān)的計(jì)時(shí)間隔過(guò)期之前,應(yīng)該有兩個(gè)快速的鼠標(biāo)點(diǎn)擊。您不應(yīng)同時(shí)將處理程序附加到單個(gè)元素的clickdblclick,因?yàn)殡p擊觸發(fā)的事件是特定于瀏覽器的。某些瀏覽器可能會(huì)在雙擊之前注冊(cè)兩個(gè)單次點(diǎn)擊事件,而其他瀏覽器可能只在雙擊之前注冊(cè)一個(gè)單次點(diǎn)擊事件。

在元素上右鍵單擊后但顯示上下文菜單之前,會(huì)觸發(fā)contextmenu事件。這意味著您可以使用事件處理程序中的相應(yīng)代碼來(lái)阻止默認(rèn)上下文菜單顯示。

下面的代碼片段阻止默認(rèn)上下文菜單在右鍵單擊時(shí)顯示,而是顯示自定義菜單:

$(window).resize(function() {
  var windowWidth = $(window).width();
  if (windowWidth < 768) {
    $("img").attr("src", "image-src-here.jpg");
    // 此處更改圖像src。
  }
});

此演示在單擊圖像時(shí)將CSS樣式應(yīng)用于圖像,并具有自定義上下文菜單:

查看CodePen演示

基于移動(dòng)的事件

某些事件基于鼠標(biāo)指針在元素上、進(jìn)入或移出元素的移動(dòng)。共有六種基于移動(dòng)的事件方法。

讓我們從mouseovermouseenter事件開(kāi)始。顧名思義,當(dāng)鼠標(biāo)指針進(jìn)入元素時(shí),這兩個(gè)事件都會(huì)觸發(fā)。類(lèi)似地,當(dāng)鼠標(biāo)指針離開(kāi)元素時(shí),mouseleavemouseout事件會(huì)觸發(fā)。

mouseleavemouseout之間的一個(gè)區(qū)別是,前者僅當(dāng)鼠標(biāo)指針移到綁定它的元素之外時(shí)才會(huì)觸發(fā)。另一方面,即使對(duì)于該元素的任何后代之外的移動(dòng),也會(huì)觸發(fā)mouseout。mouseentermouseover之間存在完全相同的差異。

查看CodePen演示

讓我們看看基于鼠標(biāo)移動(dòng),mouseentermouseover事件計(jì)數(shù)如何變化。嘗試從右側(cè)進(jìn)入大的藍(lán)色框,并在進(jìn)入右側(cè)粉紅色框之前停止。mouseentermouseover現(xiàn)在都應(yīng)該值為1。如果您向左移動(dòng)并進(jìn)入粉紅色框,則mouseover計(jì)數(shù)將變?yōu)?。發(fā)生這種情況是因?yàn)?code>mouseover事件的事件冒泡。粉紅色框上的mouseover事件“冒泡”到外部藍(lán)色框,使mouseover事件的計(jì)數(shù)增加1。當(dāng)您進(jìn)一步向左移動(dòng)并在兩個(gè)粉紅色框之間停止時(shí),mouseover事件會(huì)再次觸發(fā)。當(dāng)您到達(dá)藍(lán)色框的左端時(shí),mouseover事件的計(jì)數(shù)應(yīng)為5,而mouseenter事件的計(jì)數(shù)仍應(yīng)為1。

可以使用完全相同的推理來(lái)解釋mouseleavemouseout事件的計(jì)數(shù)。嘗試在不同方向移動(dòng),看看計(jì)數(shù)如何變化。

mousemovehover事件

當(dāng)鼠標(biāo)指針在元素內(nèi)移動(dòng)時(shí),會(huì)觸發(fā)mousemove事件。只要有鼠標(biāo)移動(dòng),即使它小到一個(gè)像素,它都會(huì)觸發(fā)。因此,在很短的時(shí)間內(nèi)可以觸發(fā)數(shù)百個(gè)事件。正如您可以想象的那樣,在事件處理程序中執(zhí)行復(fù)雜操作會(huì)導(dǎo)致瀏覽器滯后。建議使mousemove事件處理程序盡可能高效,并在不再需要時(shí)取消綁定它。

hover僅當(dāng)鼠標(biāo)指針進(jìn)入或離開(kāi)元素時(shí)才會(huì)觸發(fā)。調(diào)用hover方法有兩種方法。第一種是:

$(window).resize(function() {
  var windowWidth = $(window).width();
  if (windowWidth < 768) {
    $("img").attr("src", "image-src-here.jpg");
    // 此處更改圖像src。
  }
});

在這里,當(dāng)鼠標(biāo)指針進(jìn)入元素時(shí)執(zhí)行handlerIn(),當(dāng)鼠標(biāo)指針離開(kāi)元素時(shí)執(zhí)行handlerOut()。第二種方法是:

$(window).scroll(function() {
  if ($(window).scrollTop() >= 500) {
    $("#alert").text("您已經(jīng)滾動(dòng)足夠了!");
    // 更新警報(bào)框內(nèi)的文本。
  }
});

這次,相同的handlerInOut函數(shù)在進(jìn)入和離開(kāi)元素時(shí)都會(huì)執(zhí)行。

查看CodePen演示

注意:此演示使用CSS濾鏡效果,IE不支持。

表單事件

表單在網(wǎng)絡(luò)上無(wú)處不在。幾乎每個(gè)用戶都會(huì)在某個(gè)時(shí)候填寫(xiě)表單。jQuery有專(zhuān)門(mén)的方法來(lái)處理表單事件。這些事件可以在值更改或失去焦點(diǎn)時(shí)觸發(fā)。共有七個(gè)表單事件,我們將逐一討論它們。

blurfocusfocusinfocusout事件

每當(dāng)元素獲得焦點(diǎn)時(shí),都會(huì)觸發(fā)focus事件。它僅適用于表單元素和錨點(diǎn)標(biāo)記。要觸發(fā)任何其他元素上的焦點(diǎn),您需要設(shè)置元素的tabindex屬性。請(qǐng)記住,在Internet Explorer中,將焦點(diǎn)設(shè)置在隱藏元素上會(huì)導(dǎo)致錯(cuò)誤。如果您必須在不顯式設(shè)置焦點(diǎn)的情況下觸發(fā)focus事件,您可以調(diào)用triggerHandler("focus")方法。

每當(dāng)元素失去焦點(diǎn)時(shí),都會(huì)觸發(fā)blur事件。在較舊的瀏覽器中,此事件僅適用于表單元素。

focus事件不同,每當(dāng)任何元素或其后代獲得焦點(diǎn)時(shí),都會(huì)觸發(fā)focusin。類(lèi)似地,每當(dāng)任何元素或其后代失去焦點(diǎn)時(shí),都會(huì)觸發(fā)focusout。因此,如果您希望事件冒泡,則應(yīng)使用這兩個(gè)事件。

selectchangesubmit事件

當(dāng)元素的值發(fā)生變化時(shí),會(huì)觸發(fā)change事件。此事件僅適用于<input>、<select><textarea>元素。對(duì)于復(fù)選框、單選按鈕和選擇框,此事件會(huì)在用戶進(jìn)行任何選擇后立即觸發(fā)。在其他元素上,它僅在元素失去焦點(diǎn)后才會(huì)觸發(fā)。還要注意,如果使用JavaScript更改輸入元素的值,則不會(huì)觸發(fā)此事件。

當(dāng)用戶在元素內(nèi)進(jìn)行文本選擇時(shí),會(huì)觸發(fā)select事件。此事件的范圍更有限,僅適用于<input><textarea>元素。如果您想檢索選定的文本,則必須使用跨瀏覽器的jQuery插件。

當(dāng)用戶嘗試提交表單時(shí),會(huì)觸發(fā)submit事件。您只能將處理程序附加到表單元素。要觸發(fā)此事件,用戶必須單擊<button>、<input type="submit"><input type="image">元素。有趣的是,JavaScript submit事件在Internet Explorer中不會(huì)冒泡。但是,自jQuery 1.4版以來(lái),此行為已在瀏覽器中標(biāo)準(zhǔn)化。

查看CodePen演示

jQuery 3中的更改

自jQuery 1.8版以來(lái),load、errorunload方法已被棄用。load()方法本質(zhì)上是不明確的。此方法可能意味著AJAX加載或?qū)嶋H觸發(fā)的load事件。類(lèi)似地,error方法也可能與jQuery.error()方法混淆?,F(xiàn)在在jQuery 3中,這些方法最終已被刪除。您現(xiàn)在必須使用on方法來(lái)注冊(cè)這些事件偵聽(tīng)器。

最后的想法

在本文中,我已經(jīng)介紹了所有主要的jQuery事件方法以及類(lèi)似事件之間的區(qū)別。知道何時(shí)使用keypress而不是keydown可以幫助您避免麻煩并節(jié)省寶貴的時(shí)間。盡管可以使用純JavaScript連接到DOM事件,但jQuery確實(shí)在后臺(tái)對(duì)跨瀏覽器差異進(jìn)行了一些規(guī)范化,這取決于您的網(wǎng)站/應(yīng)用程序必須支持哪些瀏覽器,這可能是一個(gè)優(yōu)勢(shì)。

要了解更多關(guān)于事件的信息,您可以訪問(wèn)官方j(luò)Query文檔。如果您有任何關(guān)于在jQuery中使用事件的問(wèn)題或技巧,請(qǐng)發(fā)表評(píng)論。

jQuery事件的常見(jiàn)問(wèn)題解答 (FAQ)

如何阻止jQuery中的事件冒泡?

在jQuery中,您可以使用event.stopPropagation()方法阻止事件向上冒泡DOM樹(shù)。此方法可防止事件傳播到父元素。需要注意的是,它不會(huì)阻止任何默認(rèn)行為發(fā)生;它只是阻止事件冒泡。以下是如何使用它的示例:

$(window).resize(function() {
  var windowWidth = $(window).width();
  if (windowWidth < 768) {
    $("img").attr("src", "image-src-here.jpg");
    // 此處更改圖像src。
  }
});

jQuery中的.bind().live()方法有什么區(qū)別?

jQuery中的.bind().live()方法都用于將事件處理程序附加到元素。它們之間的主要區(qū)別在于.bind()僅將處理程序附加到當(dāng)前元素,而.live()將處理程序附加到當(dāng)前元素和將來(lái)與選擇器匹配的所有元素。但是,值得注意的是,自jQuery 1.7起.live()方法已被棄用,并在jQuery 1.9中被刪除。您應(yīng)該改用.on()方法。

如何在jQuery中以編程方式觸發(fā)事件?

您可以使用.trigger()方法以編程方式在jQuery中觸發(fā)事件。此方法允許您手動(dòng)觸發(fā)元素上的指定事件。這是一個(gè)例子:

$(window).resize(function() {
  var windowWidth = $(window).width();
  if (windowWidth < 768) {
    $("img").attr("src", "image-src-here.jpg");
    // 此處更改圖像src。
  }
});

jQuery中的事件委托是什么,為什么它有用?

jQuery中的事件委托是一種技術(shù),您將事件的處理委托給父元素,而不是將事件處理程序綁定到各個(gè)元素。當(dāng)您有大量需要類(lèi)似事件處理程序的元素,或者當(dāng)您動(dòng)態(tài)地將元素添加到DOM時(shí),這尤其有用。它通過(guò)減少需要綁定的事件處理程序的數(shù)量來(lái)提高性能。

如何阻止jQuery中事件的默認(rèn)操作?

您可以使用event.preventDefault()方法阻止jQuery中事件的默認(rèn)操作。此方法可阻止事件的默認(rèn)操作發(fā)生。例如,它可以阻止鏈接跟隨URL。

$(window).scroll(function() {
  if ($(window).scrollTop() >= 500) {
    $("#alert").text("您已經(jīng)滾動(dòng)足夠了!");
    // 更新警報(bào)框內(nèi)的文本。
  }
});

jQuery中的.click().on('click')有什么區(qū)別?

jQuery中的.click()方法是.on('click')的簡(jiǎn)寫(xiě)。這兩種方法都將點(diǎn)擊事件處理程序附加到選定的元素。但是,.on()方法提供了更大的靈活性,因?yàn)樗€可以處理動(dòng)態(tài)添加的元素的事件,并且可以一次處理多個(gè)事件。

如何在jQuery中檢測(cè)雙擊事件?

您可以使用.dblclick()方法在jQuery中檢測(cè)雙擊事件。此方法附加一個(gè)函數(shù),該函數(shù)在選定元素上發(fā)生雙擊事件時(shí)執(zhí)行。這是一個(gè)例子:

$(window).unload(function() {
  alert("請(qǐng)不要離開(kāi)!"); // 不起作用。
});

如何將多個(gè)事件綁定到j(luò)Query中的元素?

您可以使用.on()方法將多個(gè)事件綁定到j(luò)Query中的元素。此方法允許您將多個(gè)事件處理程序附加到選定的元素。這是一個(gè)例子:

$("#alert").keydown(function(event) {
  switch (event.which) {
    case 89: // y的鍵碼
      $("#element").remove(); // 從DOM中刪除元素
      break;
  }
});

如何在jQuery中取消綁定事件處理程序?

您可以使用.off()方法在jQuery中取消綁定事件處理程序。此方法刪除使用.on()附加的事件處理程序。這是一個(gè)例子:

$("body").keypress(function(event) {
  switch (event.keyCode) {
    case 75:
      // 75在keypress事件中代表大寫(xiě)K
      $(".K").css("display", "none");
      break;
  }
});

如何在jQuery中檢測(cè)右鍵單擊事件?

您可以使用.contextmenu()方法或通過(guò)檢查mousedown事件中事件對(duì)象的“which”屬性來(lái)檢測(cè)jQuery中的右鍵單擊事件?!皐hich”屬性對(duì)于右鍵單擊將為3。這是一個(gè)例子:

$("img").contextmenu(function(event) {
  event.preventDefault();
  $("#custom-menu")
    .show().css({
      top: event.pageY + 10,
      left: event.pageX + 10
      // 在鼠標(biāo)點(diǎn)擊附近顯示菜單
    });
});

$("#custom-menu #option").click(function() {
   $("img").toggleClass("class-name");
   // 切換圖像類(lèi)。
});

以上是全面了解jQuery中的事件的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

熱門(mén)話題

Java vs. JavaScript:清除混亂 Java vs. JavaScript:清除混亂 Jun 20, 2025 am 12:27 AM

Java和JavaScript是不同的編程語(yǔ)言,各自適用于不同的應(yīng)用場(chǎng)景。Java用于大型企業(yè)和移動(dòng)應(yīng)用開(kāi)發(fā),而JavaScript主要用于網(wǎng)頁(yè)開(kāi)發(fā)。

JavaScript評(píng)論:簡(jiǎn)短說(shuō)明 JavaScript評(píng)論:簡(jiǎn)短說(shuō)明 Jun 19, 2025 am 12:40 AM

JavascriptconcommentsenceenceEncorenceEnterential gransimenting,reading and guidingCodeeXecution.1)單inecommentsareusedforquickexplanations.2)多l(xiāng)inecommentsexplaincomplexlogicorprovideDocumentation.3)

如何在JS中與日期和時(shí)間合作? 如何在JS中與日期和時(shí)間合作? Jul 01, 2025 am 01:27 AM

JavaScript中的日期和時(shí)間處理需注意以下幾點(diǎn):1.創(chuàng)建Date對(duì)象有多種方式,推薦使用ISO格式字符串以保證兼容性;2.獲取和設(shè)置時(shí)間信息可用get和set方法,注意月份從0開(kāi)始;3.手動(dòng)格式化日期需拼接字符串,也可使用第三方庫(kù);4.處理時(shí)區(qū)問(wèn)題建議使用支持時(shí)區(qū)的庫(kù),如Luxon。掌握這些要點(diǎn)能有效避免常見(jiàn)錯(cuò)誤。

JavaScript與Java:開(kāi)發(fā)人員的全面比較 JavaScript與Java:開(kāi)發(fā)人員的全面比較 Jun 20, 2025 am 12:21 AM

JavaScriptIspreferredforredforwebdevelverment,而Javaisbetterforlarge-ScalebackendsystystemsandSandAndRoidApps.1)JavascriptexcelcelsincreatingInteractiveWebexperienceswebexperienceswithitswithitsdynamicnnamicnnamicnnamicnnamicnemicnemicnemicnemicnemicnemicnemicnemicnddommanipulation.2)

為什么要將標(biāo)簽放在的底部? 為什么要將標(biāo)簽放在的底部? Jul 02, 2025 am 01:22 AM

PlacingtagsatthebottomofablogpostorwebpageservespracticalpurposesforSEO,userexperience,anddesign.1.IthelpswithSEObyallowingsearchenginestoaccesskeyword-relevanttagswithoutclutteringthemaincontent.2.Itimprovesuserexperiencebykeepingthefocusonthearticl

JavaScript:探索用于高效編碼的數(shù)據(jù)類(lèi)型 JavaScript:探索用于高效編碼的數(shù)據(jù)類(lèi)型 Jun 20, 2025 am 12:46 AM

javascripthassevenfundaMentalDatatypes:數(shù)字,弦,布爾值,未定義,null,object和symbol.1)numberSeadUble-eaduble-ecisionFormat,forwidevaluerangesbutbecautious.2)

什么是在DOM中冒泡和捕獲的事件? 什么是在DOM中冒泡和捕獲的事件? Jul 02, 2025 am 01:19 AM

事件捕獲和冒泡是DOM中事件傳播的兩個(gè)階段,捕獲是從頂層向下到目標(biāo)元素,冒泡是從目標(biāo)元素向上傳播到頂層。1.事件捕獲通過(guò)addEventListener的useCapture參數(shù)設(shè)為true實(shí)現(xiàn);2.事件冒泡是默認(rèn)行為,useCapture設(shè)為false或省略;3.可使用event.stopPropagation()阻止事件傳播;4.冒泡支持事件委托,提高動(dòng)態(tài)內(nèi)容處理效率;5.捕獲可用于提前攔截事件,如日志記錄或錯(cuò)誤處理。了解這兩個(gè)階段有助于精確控制JavaScript響應(yīng)用戶操作的時(shí)機(jī)和方式。

Java和JavaScript有什么區(qū)別? Java和JavaScript有什么區(qū)別? Jun 17, 2025 am 09:17 AM

Java和JavaScript是不同的編程語(yǔ)言。1.Java是靜態(tài)類(lèi)型、編譯型語(yǔ)言,適用于企業(yè)應(yīng)用和大型系統(tǒng)。2.JavaScript是動(dòng)態(tài)類(lèi)型、解釋型語(yǔ)言,主要用于網(wǎng)頁(yè)交互和前端開(kāi)發(fā)。

See all articles