亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

JQuery中Bind()事件用法分析

2024-05-06 16:19:22
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了JQuery中Bind()事件用法,實例分析了Bind()事件的功能、特點與綁定事件時的使用技巧,需要的朋友可以參考下

本文實例分析了JQuery中Bind()事件用法。分享給大家供大家參考。具體分析如下:

我們先看一下它的定義:

 

 
  1. .bind( eventType [, eventData], handler(eventObject)) 

.Bind()方法的主要功能是在向它綁定的對象上面提供一些事件方法的行為。期中它的三個參數的意義分別如下:

eventType是一個字符串類型的事件類型,就是你所需要綁定的事件。這類類型可以包括如下:blur, focus, focusin, focusout, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, error 。這里需要注意的是,這里用的都是javascript里面的事件方法,而不是JQuery里面的,JQuery里面的事件方法均在JavaScript 前面多了一個“on”,比如onclick,onblur 等等。

eventData參數是一個可選參數,不過它在平時用的比較少。如果提供了這個參數,那么我們就能把一些附加信息傳遞給事件處理函數了。這個參數有個很好的用處,就是處理閉包帶來的問題。待會在給大家舉實例。

Handler是用來綁定的處理數,其實也也就是回調函數,處理完數據之后相應的方法。

1.第一個簡單的bind ()事件---Hello Word

 

 
  1. <input id="BtnFirst"type="button"value="Click Me"/> 
  2. <script> 
  3. $(function () { 
  4. $("#BtnFirst").bind("click",function(){ 
  5. alert("Hello World"); 
  6. }); 
  7. }) 
  8. </script> 

打開頁面之后,點擊按鈕“Click Me”,就會彈出”Hello World”。這算是我們最簡單的綁定事件吧。很簡單吧。

2.綁定多個事件

我們可以通過bind()來綁定多個事件(其實,這也就是JQuery以及Linq中非常有名的鏈式編程)。實現的主要功能就是當我們點擊的時候,彈出“Hello World”,當離開button的時候,顯示出一個div。

 

 
  1. <div> 
  2. <input id="BtnFirst"type="button"value="Click Me"/></div> 
  3. <div id="TestDiv"style=" width:200px; height:200px; display:none; "
  4. </div> 
  5. <script> 
  6. $(function () { 
  7. $("#BtnFirst").bind("click"function () { 
  8. alert("Hello World"); 
  9. }).bind("mouseout"function () { 
  10. $("#TestDiv").show("slow"); 
  11. }); 
  12. }) 
  13. </script> 

這段代碼頁很容易理解,就是當button被點擊的時候,彈出一個"Hello World",在離開的時候,在把div給顯示出來。JQuery里的動畫,均可以用“slow”、“fast”和“normal”,當然你還可以設置相關的毫秒數。

3.bind()事件的對象

Handler這個回調函數可以接受一個參數,當這個函數被調用時,一個JavaScript事件對象會作為一個參數傳進來。

這個事件對象通常是沒有必要且可以省略的參數,因為當這個事件處理函數綁定的時候就能夠明確知道他在觸發的時候應該做些什么,通常就已經可以獲得充分的信息了。然而在有些時候,在事件初始化的時候需要獲取更多關于用戶環境的信息。

給一個JQuery官網上面的例子:

 

 
  1. <style>  
  2. p {background:yellow;font-weight:bold;cursor:pointer;3 padding:5px;} 
  3. p.over {background:#ccc;} 
  4. span {color:red;} 
  5. </style> 
  6. <p>Click or double click here.</p> 
  7. <span></span> 
  8. <script> 
  9. $("p").bind("click"function(event){ 
  10. var str = "( " + event.pageX + ", " + event.pageY + " )"
  11. $("span").text("Click happened! " + str); 
  12. }); 
  13. $("p").bind("dblclick"function(){ 
  14. $("span").text("Double-click happened in " + this.nodeName); 
  15. }); 
  16. $("p").bind("mouseenter mouseleave"function(event){ 
  17. $(this).toggleClass("over"); 
  18. }); 
  19. </script> 

這里的主要功能是為了實現當用戶點擊p這個對象的時候,把當前相對于頁面的坐標顯示在span標簽里面,這里就用到了event這個事件。把參數傳進去。

4.unbind()事件

unbind([type],[data],Handler) 是 bind()的反向操作,從每一個匹配的元素中刪除綁定的事件。如果沒有參數,則刪除所有綁定的事件。你可以將你用bind()注冊的自定義事件取消綁 定。如果提供了事件類型作為參數,則只刪除該類型的綁定事件。如果把在綁定時傳遞的處理函數作為第二個參數,則只有這個特定的事件處理函數會被刪除。

 

 
  1. <body onclick="MyBodyClick()"
  2. <div onclick="MyClickOut()"
  3. <div onclick="MyClickInner()"
  4. <span id="MySpan">I love JQuery!! </span> 
  5. </div> 
  6. </div> 
  7. <span id="LooseFocus">失去焦點</span> 
  8. </body> 
  9. <script> 
  10. function MyClickOut() { 
  11. alert("outer Div"); 
  12. function MyClickInner() { 
  13. alert("Inner Div"); 
  14. function MyBodyClick() { 
  15. alert("Body Click"); 
  16. var foo = function () { 
  17. alert("I'm span."); 
  18. $(function () { 
  19. $("#MySpan").bind("click", foo); 
  20. })  
  21. $(function () { 
  22. $("#LooseFocus").unbind("click", foo); 
  23. }) 
  24. </script> 

上面的代碼也很好理解,就是當用戶的鼠標在span上面停留的時候,然后把span的click事件給取消掉。所以,最后它只會彈出body里面的alert。

最后,簡單的了解一下one()事件的使用,其實one和bind是一樣,都是為了綁定事件而產生的。One與bind基本上差不多,不同的在調用 jQuery.event.add時,把注冊的事件處理的函數做了一個小小的調整。One調用了jQuery.event.proxy進行了代理傳入的事 件處理函數。在事件觸發調用這個代理的函數時,先把事件從cache中刪除,再執行注冊的事件函數。這里就是閉包的應用,通過閉包得到fn注冊的事件函數 的引用。

使用規則:

 

 
  1. one(type,[data],fn) 

為每一個匹配元素的特定事件(像click)綁定一個一次性的事件處理函數。 在每個對象上,這個事件處理函數只會被執行一次。其他規則與bind()函數相同。這個事件處理函數會接收到一個事件對象,可以通過它來阻止(瀏覽器)默認的行為。如果既想取消默認的行為,又想阻止事件起泡,這個事件處理函數必須返回false。

貼一下,bind和one的各自代碼的實現,看官可以稍微的做一個比較:

Bind()代碼的實現:

 

 
  1. bind : function(type, data, fn) {  
  2. return type == "unload" ? this.one(type,data,fn) : this.each(function(){ 
  3. //fn || data, fn && data實現了data參數可有可無  
  4. jQuery.event.add(this, type, fn || data, fn && data);  
  5. });  

One()代碼的實現:

 

 
  1. one : function(type, data, fn) {  
  2. var one = jQuery.event.proxy(fn || data, function(event) {  
  3. jQuery(this).unbind(event, one);  
  4. return (fn || data).apply(this, arguments); 
  5. //this->當前的元素  
  6. });  
  7. return this.each(function() {  
  8. jQuery.event.add(this, type, one, fn && data);  
  9. });  

5.最后呢,其實想在貼一個冒泡事件,因為在處理綁定事件的時候,如果調用內部的事件 有可能會觸發外面的事件,所以給大伙一個借鑒吧。

這里可以參考一下javascript事件冒泡的文章:《JavaScript 事件冒泡簡介及應用》。

簡單的說,何為冒泡事件?其實,簡單的理解是,也可以說是事件傳播,它會從內部的控件廣播到父類的元素,然后接著一直往上到祖先級別的元素。

則 冒泡實例代碼:

 

 
  1. <body onclick="MyBodyClick()"
  2. <div onclick="MyClickOut()"
  3. <div onclick="MyClickInner()"
  4. <span id="MySpan"
  5. I love JQuery!! 
  6. </span> 
  7. </div> 
  8. </div> 
  9. </body> 
  10. <script type="text/javascript"
  11. function MyClickOut() { 
  12. alert("outer Div"); 
  13. function MyClickInner() { 
  14. alert("Inner Div"); 
  15. function MyBodyClick() {  
  16. alert("Body Click"); 
  17. $(function () { 
  18. $("#MySpan").bind("click"function (event) { 
  19. alert("I'm span"); 
  20. event.stopPropagation(); 
  21. }); 
  22. </script> 

希望本文所述對大家的jQuery程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美性猛交xxxx偷拍洗澡| 成人精品视频久久久久| 国产91av在线| 丝袜美腿亚洲一区二区| 这里只有精品在线观看| 91视频-88av| 日韩精品极品视频免费观看| 亚洲人a成www在线影院| 国产精品香蕉在线观看| 亚洲一区二区在线播放| 97成人在线视频| 成人免费观看49www在线观看| 欧美麻豆久久久久久中文| 午夜精品www| 亚洲国产天堂久久国产91| 亚洲乱码一区二区| 亚洲天堂免费视频| 久久视频免费在线播放| 亚洲欧美国产一区二区三区| 久久精品国产69国产精品亚洲| 欧美日韩免费一区| 欧美日韩国产精品一区二区三区四区| 欧美大人香蕉在线| 欧美一级黑人aaaaaaa做受| 欧美成人午夜激情| 懂色av影视一区二区三区| 91久久久久久久久久| 中文字幕不卡在线视频极品| 国产91在线视频| 欧美一级电影久久| 最近日韩中文字幕中文| 精品国产91久久久久久老师| 亚洲网在线观看| 热re91久久精品国99热蜜臀| 97香蕉超级碰碰久久免费的优势| 久久韩国免费视频| 亚洲天堂影视av| 国产精品国产三级国产aⅴ9色| 国产成人综合久久| 国产免费一区二区三区在线能观看| 亚洲网站在线观看| 少妇高潮久久77777| 欧美裸体男粗大视频在线观看| 98视频在线噜噜噜国产| 亚洲国内精品在线| 亚洲天堂一区二区三区| 亚洲精品www久久久| 中文字幕亚洲综合| 国产精品久久久久久久久免费| 日韩乱码在线视频| 久久免费视频这里只有精品| 午夜精品久久久久久久99热| 亚洲精品短视频| 91日韩在线视频| 欧美日韩美女在线| 亚洲18私人小影院| 亚洲精品国产成人| 久久成人人人人精品欧| 久久国产精品影视| 欧美电影在线免费观看网站| 日韩视频一区在线| 国产91精品久| 国产精品极品美女在线观看免费| 日韩免费观看网站| 欧美成人精品在线| 亚洲美女自拍视频| 欧美丰满少妇xxxx| 国产精品视频区1| 日韩美女在线看| 日韩电影中文 亚洲精品乱码| 在线观看免费高清视频97| 日韩动漫免费观看电视剧高清| 91精品国产91久久久久福利| 亚洲免费中文字幕| 97在线免费观看| 亚洲a一级视频| 色播久久人人爽人人爽人人片视av| 国产精品高潮粉嫩av| 久久成人精品视频| 国产精品一久久香蕉国产线看观看| 欧美一级大片在线观看| 亚洲国内精品视频| 日韩视频在线免费观看| 精品国产鲁一鲁一区二区张丽| 国产精品成人v| www.国产精品一二区| 日韩亚洲精品视频| 97在线观看免费高清| 青青久久av北条麻妃黑人| 久久久久久久久久久av| 亚洲热线99精品视频| 精品露脸国产偷人在视频| 国模私拍一区二区三区| 久久99久久99精品免观看粉嫩| 亚洲女同性videos| 久精品免费视频| 成人疯狂猛交xxx| 亚洲欧美日韩中文视频| 热re99久久精品国产66热| 日韩视频永久免费观看| 日韩在线观看视频免费| 成人黄色激情网| 久久久久久亚洲精品中文字幕| 欧美日韩xxx| 亚洲第一免费网站| 神马久久桃色视频| 精品无人区太爽高潮在线播放| www.欧美免费| www.日本久久久久com.| 日韩视频免费看| 欧美孕妇毛茸茸xxxx| 97久久精品人人澡人人爽缅北| 日韩国产中文字幕| 国产自产女人91一区在线观看| 亚洲乱码一区av黑人高潮| 国产日韩欧美一二三区| 91夜夜揉人人捏人人添红杏| 色视频www在线播放国产成人| 成人在线免费观看视视频| 国产性色av一区二区| 久久久亚洲精选| 亚洲欧美一区二区三区四区| 国产91精品不卡视频| 国产精品自产拍在线观看中文| 亚洲综合中文字幕在线观看| 国产精品美女www爽爽爽视频| 精品国产福利视频| 久久久久久久久综合| 亲爱的老师9免费观看全集电视剧| 亚洲乱亚洲乱妇无码| 色综合久综合久久综合久鬼88| 欧美亚洲另类制服自拍| 亚洲国产中文字幕久久网| 欧美成人激情视频| 亚洲午夜久久久久久久| 黑人巨大精品欧美一区二区一视频| 最近免费中文字幕视频2019| 欧美高清自拍一区| 中文字幕日韩在线视频| 欧美日韩激情网| 在线亚洲男人天堂| 亚洲人成亚洲人成在线观看| 久久国内精品一国内精品| 精品久久久国产精品999| 久久免费在线观看| 高清亚洲成在人网站天堂| 亚洲欧美日韩区| 国产美女扒开尿口久久久| 国产日产久久高清欧美一区| 91超碰caoporn97人人| 国产欧美日韩中文字幕在线| 国产精品69久久| 欧美在线视频观看免费网站| 97视频在线观看免费高清完整版在线观看| 97香蕉超级碰碰久久免费软件| 久久成人av网站| 国产ts人妖一区二区三区| 中文字幕久久久| 欧美日韩亚洲国产一区| 亚洲韩国日本中文字幕| 亚洲精品电影在线观看| 日韩精品在线第一页| 亚洲第五色综合网| 97在线观看视频国产|