jQuery 學習筆記(三)——事件與應用

頁面加載時觸發ready()事件

ready()事件類似于onLoad()事件,但前者只要頁面的DOM結構加載后便觸發,而后者必須在頁面全部元素加載成功才觸發,ready()可以寫多個,按順序執行。此外,下列寫法是相等的:

$(document).ready(function(){})等價于$(function(){});

例如,當觸發頁面的ready()事件時,在<div>元素中顯示一句話。如下圖所示:

在瀏覽器中顯示的效果:

從圖中可以看出,當頁面的DOM框架完成加載后,便觸發ready()事件,在該事件中,通過id號為“tip”的元素,調用html()方法在頁面中顯示一段字符。

使用bind()方法綁定元素的事件

bind()方法綁定元素的事件非常方便,綁定前,需要知道被綁定的元素名,綁定的事件名稱,事件中執行的函數內容就可以,它的綁定格式如下:

$(selector).bind(event,[data] function)

參數event為事件名稱,多個事件名稱用空格隔開,function為事件執行的函數。

例如,綁定按鈕的單擊事件,單擊按鈕時,該按鈕變為不可用。如下圖所示:

在瀏覽器中顯示的效果:

可以看出,由于使用bind()方法,綁定了按鈕的單擊事件,在該事件中將按鈕本身的“disabled”屬性值設為“true”,表示不可用,當點擊時觸該事件。

使用bind()方法綁定元素的事件

bind()方法綁定元素的事件非常方便,綁定前,需要知道被綁定的元素名,綁定的事件名稱,事件中執行的函數內容就可以,它的綁定格式如下:

$(selector).bind(event,[data] function)

參數event為事件名稱,多個事件名稱用空格隔開,function為事件執行的函數。

例如,綁定按鈕的單擊事件,單擊按鈕時,該按鈕變為不可用。如下圖所示:

在瀏覽器中顯示的效果:

可以看出,由于使用bind()方法,綁定了按鈕的單擊事件,在該事件中將按鈕本身的“disabled”屬性值設為“true”,表示不可用,當點擊時觸該事件。

使用hover()方法切換事件

hover()方法的功能是當鼠標移到所選元素上時,執行方法中的第一個函數,鼠標移出時,執行方法中的第二個函數,實現事件的切實效果,調用格式如下:

$(selector).hover(over,out);

over參數為移到所選元素上觸發的函數,out參數為移出元素時觸發的函數。

例如,當鼠標移到<div>元素上時,元素中的字體變成金黃色,如下圖所示:

在瀏覽器中顯示的效果:

從圖中可以看出,使用hover()方法執行兩個函數,當鼠標移在元素上時調用addClass()方法增加一個樣式,移出時,調用removeClass()方法移除該樣式。

使用toggle()方法綁定多個函數

toggle()方法可以在元素的click事件中綁定兩個或兩個以上的函數,同時,它還可以實現元素的隱藏與顯示的切換,綁定多個函數的調用格式如下:

$(selector).toggle(fun1(),fun2(),funN(),...)

其中,fun1,fun2就是多個函數的名稱

例如,使用toggle()方法,當每次點擊<div>元素時,顯示不同內容,如下圖所示:

在瀏覽器中顯示的效果:

從圖中可以看出,每次點擊<div>元素時,都依次執行toggle()方法綁定的函數,當執行到最后一個函數時,再次點擊將又返回執行第一個函數。

注意:toggle()方法支持目前主流穩定的jQuery版本1.8.2,在1.9.0之后的版本是不支持的。

使用unbind()方法移除元素綁定的事件

unbind()方法可以移除元素已綁定的事件,它的調用格式如下:

$(selector).unbind(event,fun)

其中參數event表示需要移除的事件名稱,多個事件名用空格隔開,fun參數為事件執行時調用的函數名稱。

例如,點擊按鈕時,使用unbind()方法移除<div>元素中已綁定的“dblclick”事件,如下圖所示:

在瀏覽器中顯示的效果:

從圖中可以看出,當使用unbind()方法移除已綁定的“dblclick”事件時,再次雙擊<div>元素,樣式和文字都沒有任何變化,表明移除事件成功。

如果沒有規定參數,unbind() 方法會刪除指定元素的所有事件處理程序。

使用one()方法綁定元素的一次性事件

one()方法可以綁定元素任何有效的事件,但這種方法綁定的事件只會觸發一次,它的調用格式如下:

$(selector).one(event,[data],fun)

參數event為事件名稱,data為觸發事件時攜帶的數據,fun為觸發該事件時執行的函數。

例如,使用one方法綁定<div>元素的單擊事件,在事件執行的函數中,累計執行的次數,并將該次數顯示在頁面中,如下圖所示:

在瀏覽器中顯示的效果:

從圖中可以看出,由于使用了one()方法綁定<div>元素的單擊事件,因為事件函數只能執行一次,執行完成后,無論如何單擊,都不再觸發。

調用trigger()方法手動觸發指定的事件

trigger()方法可以直接手動觸發元素指定的事件,這些事件可以是元素自帶事件,也可以是自定義的事件,總之,該事件必須能執行,它的調用格式為:

$(selector).trigger(event)

其中event參數為需要手動觸發的事件名稱。

例如,當頁面加載時,手動觸發文本輸入框的“select”事件,使文本框的默認值處于全部被選中的狀態,如下圖所示:

在瀏覽器中顯示的效果:

從圖中可以看出,由于文本輸入框調用trigger()方法觸發了“select”事件,因此,當頁面加載完成后,文本框中的默認值處于全部被選中的狀態。

文本框的focus和blur事件

focus事件在元素獲取焦點時觸發,如點擊文本框時,觸發該事件;而blur事件則在元素丟失焦點時觸發,如點擊除文本框的任何元素,都會觸發該事件。

例如,在觸發文本框的“focus”事件時,<div>元素顯示提示內容,如下圖所示:

在瀏覽器中顯示的效果:

從圖中可以看出,當點擊文本框時,觸發文本框的“focus”事件,在該事件中,頁面中的<div>元素顯示提示信息。

下拉列表框的change事件

當一個元素的值發生變化時,將會觸發change事件,例如在選擇下拉列表框中的選項時,就會觸change事件。

例如,當在頁面選擇下拉列表框中的選項時,將在<div>元素中顯示所選擇的選項內容,如下圖所示:

在瀏覽器中顯示的效果:

從圖中可以看出,由于使用bind()方法綁定了下拉列表的“change”事件,因此,當選擇列表中的選項時,在<div>元素中顯示所選擇的選項內容。

調用live()方法綁定元素的事件

bind()方法相同,live()方法與可以綁定元素的可執行事件,除此相同功能之外,live()方法還可以綁定動態元素,即使用代碼添加的元素事件,格式如下:

$(selector).live(event,[data],fun)

參數event為事件名稱,data為觸發事件時攜帶的數據,fun為觸發該事件時執行的函數。

例如,使用live()方法綁定,頁面中按鈕元素的單擊事件,而這個按鈕是通過追加的方式添加至頁面的。如下圖所示:

在瀏覽器中顯示的效果:

從圖中可以看出,雖然按鈕元素是在事件綁定聲明之后,并且是通過追加的方式添加至頁面的,但由于使用的是live()方法綁定元素的事件,因此,仍然生效。

注意:從 jQuery 1.7 開始,不再建議使用 .live() 方法。1.9不支持.live(),本節代碼編輯器里的js引用版本改為了1.8。





本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/386089.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/386089.shtml
英文地址,請注明出處:http://en.pswp.cn/news/386089.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

web開發軟件,HTML如何添加錨點,成功入職阿里

前言 正式學習前端大概 3 年多了&#xff0c;接觸前端大概 4 年了&#xff0c;很早就想整理這個書單了&#xff0c;因為常常會有朋友問&#xff0c;前端該如何學習&#xff0c;學習前端該看哪些書&#xff0c;我就講講我學習的道路中看的一些書&#xff0c;雖然整理的書不多&a…

cs碩士妹子找工作經歷【阿里人搜等互聯網】

摘自 北郵人論壇 分享他人成功的求職經歷。原文如下&#xff1a; 唉&#xff0c;妹子本來是本著寫面經的態度與大家分享&#xff0c;之自己情況也是想說明一啥都不會的菜鳥在悲催的逆境下也可以憑自身努力找到offer&#xff0c;沒想到被評為作秀。。。妹子能力背景確實和說的…

web開發項目,web前端CSS全局樣式,面試必問

前言 表格是網頁制作中使用最多的工具之一&#xff0c;在制作網頁時&#xff0c;使用表格可以更清晰地排列數據。但是在實際制作過程中&#xff0c;表格更多用在網頁布局的定位上。很多網頁都是以表格布局的。這是因為表格在文本和圖像的位置控制方面都有很強的功能。 字節跳…

Java中key可以重復的Map集合:IdentityHashMap

范例&#xff1a;Map中的key不允許重復&#xff0c;重復就是覆蓋 [java] view plaincopy package org.lxh.demo13.mapdemo; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; class Person { …

牛客網筆記之數組(一)

最近開始在“牛客網”上做題&#xff0c;希望通過日積月累&#xff0c;每天記錄一點小知識&#xff0c;每天前進一小步。 今天練習的題目關于數組。 1. 數組存儲&#xff1a;鏈式存儲、順序存儲 線性表邏輯上是線性的&#xff0c;存儲上可以是順序的&#xff0c;可以是鏈式的…

社交網絡節點理論

1.頓巴數 每個人的朋友圈子對多能達到150個人。&#xff08;密友3-5人&#xff0c;好友30-50人&#xff0c;其他100-150人&#xff09;縱使高科技帶來的人際圈越來越大&#xff0c;但是人腦的容量是有限的&#xff0c;你也不可能和這么多人維持一定的人際關系&#xff08;沒有人…

瘋狂漲知識!Java多態實現原理技術總監都拍手叫好

##前言 多態是Java語言重要的特性之一&#xff0c;它允許基類的指針或引用指向派生類的對象&#xff0c;而在具體訪問時實現方法的動態綁定。Java對于方法調用動態綁定的實現主要依賴于方法表&#xff0c;但通過引用調用&#xff08;invokevitual&#xff09;和接口引用調用&am…

國內互聯網公司算法機器學習崗(阿里星)面試總結

從2015年8月到2015年10月&#xff0c;花了3個月時間找工作&#xff0c;先后通過內推參加了美團、阿里螞蟻金服、京東、騰訊、今日頭條、Growing IO、微軟這7個公司的面試&#xff0c;同時參加了網易游戲、LinkedI In中國這2個公司的筆試&#xff0c;拿到比較優質的offer是京東S…

瘋狂漲知識!「高并發秒殺」微信搶紅包實戰案例幫你突破瓶頸

推薦閱讀&#xff1a; 阿里二面涼經&#xff1a;設計模式緩存Spring虛擬機MySQL中間件并發等難題&#xff0c;全部迎刃而解阿里巴巴字節跳動那些大廠必問的HTTP該怎么學&#xff1f;我建議你看看這篇文章&#xff01;螞蟻、字節、PDD社招面經Java崗&#xff08;分布式線程安全…

2016面試——騰訊、螞蟻金服、蘑菇街

騰訊TST技術面&#xff1a; 先羅列一下問題吧: 編程語言編譯的過程 同樣的邏輯,golang的二進制代碼比C語言的二進制代碼長很多.試分析原因 項目 ,三個項目都有聊.因為現場面,可以用紙寫,所以描述的更清楚些 N * N的方格紙,里面有多少個正方形 兩個數組求交集 什么樣的…

Android開發;Activity-Hook你了解多少?一起來debug

享學課堂特邀作者&#xff1a;周周 轉載請聲明出處&#xff01; 前言 手把手講解系列文章&#xff0c;是我寫給各位看官&#xff0c;也是寫給我自己的。文章可能過分詳細&#xff0c;但是這是為了幫助到盡量多的人&#xff0c;畢竟工作5,6年&#xff0c;不能老吸血&#xff0c;…

牛客網筆記之JAVA運算符

計算機的最基本用途之一就是執行數學運算&#xff0c;作為一門計算機語言&#xff0c;Java也提供了一套豐富的運算符來操縱變量。我們可以把運算符分成以下幾組&#xff1a; 算術運算符 關系運算符 位運算符 邏輯運算符 賦值運算符 其他運算符 邏輯運算符結果 ~a是按位非&#…

Android架構師談:View-Pager-性能優化之-無限循環

作者&#xff1a;享學課堂Alvin老師 轉載請聲明出處&#xff01; ViewPager實現無限滑動 **方案一&#xff1a;**將viewpager上限設置成一個很大的數&#xff0c;第一個頁面設置到中間。然后滑動的時候&#xff0c;用當前的序號與viewpager頁面數取余得到目標頁面的序號&#…

你知道如何用面向對象思想寫好并發編程嗎?

在工作中&#xff0c;我發現很多人在設計之初都是直接按照單線程的思路來寫程序的&#xff0c;而忽略了本應該重視的并發問題&#xff1b;等上線后的某天&#xff0c;突然發現詭異的 Bug&#xff0c;再歷經千辛萬苦終于定位到問題所在&#xff0c;卻發現對于如何解決已經沒有了…

你知道怎么在生產環境下部署tomcat嗎?

享學課堂特邀作者&#xff1a;老顧 轉載請聲明出處&#xff01; 一、前言 小伙伴們在網上看到的很多文章&#xff0c;都是對tomcat的一些介紹&#xff0c;什么配置啊&#xff0c;怎么啟動。其實在生產環境中怎么部署&#xff0c;和網上介紹的有很大區別。這篇文章老顧就帶著大…

淺談HashMap

Java集合類的整體架構 比較重要的集合類圖如下&#xff1a; 有序否 允許元素重復否 Collection 否 是 List 是 是 Set AbstractSet 否 否 HashSet TreeSet 是&#xff08;用二叉樹排序&#xff09; Map AbstractMap 否 使用 key-value 來映射和存儲數據&#xff0c; Key 必須惟…

matlab實現一元線性回歸和多元線性回歸

在回歸分析中,如果有兩個或兩個以上的自變量,就稱為多元回歸。事實上,一種現象常常是與多個因素相聯系的,由多個自變量的最優組合共同來預測或估計因變量,比只用一個自變量進行預測或估計更有效,更符合實際。 在實際經濟問題中,一個變量往往受到多個變量的影響。例如,家…

互聯網寒冬!“996”為什么還沒實行?我還等著早點下班呢!

“喊了十多個月的‘996’&#xff0c;說要實行‘996’&#xff0c;上班上到現在&#xff0c;影子都沒看到&#xff0c;我還能早點下班嗎&#xff1f;” 我一個在廣州上班的朋友小李&#xff0c;在我去廣州出差期間&#xff0c;與他聊天的時候發出了這樣的牢騷&#xff0c;我剛…

matlab求解常微分方程組/傳染病模型并繪制SIR曲線

看了很多關于傳染病模型的matlab程序,大都是繪制出兩條曲線(I、S)的,本文最大的不同是繪出SIR三條曲線。 先給出SIR微分方程組 函數文件: run的程序:

互聯網寒冬!技術站最全MySQL數據庫實戰規范

享學課堂特邀作者&#xff1a;老顧 轉載請聲明出處&#xff01; 前言 我們小伙伴們經常使用到mysql數據庫&#xff0c;一般就這么一用&#xff0c;很少會考慮mysql里面的細節問題&#xff0c;如sql語句的規范&#xff0c;或索引有沒有起到相應的效果&#xff0c;今天老顧就給大…