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

jQuery中綁定事件的命名空間詳解

 更新時間:2011年04月05日 23:23:54   作者:  
jQuery的bind的函數(shù)在實際應用其實不是特別多,只是他可以綁定一個事件,但不會即時觸發(fā),也可以通過unbind來解除綁定。
在沒有看到這篇 文章之前,我一直不知道原來bind也可以有命名空間。事實上,我看完這篇文章后,再去翻了一下手冊,也才發(fā)現(xiàn)了一點點的注釋。但手冊也僅僅是一句話就帶 過去了。沒有過多的深究,或許他認為命名空間這玩意很簡單,沒有必要多解釋?

先看手冊,由于bind方法有三個參數(shù)(type,[data],fn),所以手冊上這么介紹:

.bind() 方法是用于往文檔上附加行為的主要方式。所有JavaScript事件對象, 比如focus, mouseover, 和 resize,都是可以作為type參數(shù)傳遞進來的。

jQuery還提供了一些綁定這些標準事件類型的簡單方式,比如.click()用于簡 化.bind('click')。一共有以下這 些:blur, focus, focusin, focusout, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, error 。

任何作為type參數(shù)的字符串都是合法的;如果一個字符串不是原生的JavaScript事件名, 那么這個事件處理函數(shù)會綁定到一個自定義事件上。這些自定義事件絕對不會由瀏覽器觸發(fā),但可以通過使用.trigger()或 者.triggerHandler()在其他代碼中手動觸發(fā)。

如果type參數(shù)的字符串中包含一個點(.)字符, 那么這個事件就看做是有命名空間的了。這個點字符就用來分隔事件和他的命名空間。舉例來說,如果執(zhí) 行 .bind('click.name', handler) ,那么字符串中的 click 是事件類型,而字符串 name 就是命名空間。命名空 間允許我們取消綁定或者觸發(fā)一些特定類型的事件,而不用觸發(fā)別的事件。參考unbind()來獲取更多信息。

當一個事件傳到一個元素上,所有綁定在上面的針對哪個事件的處理函數(shù)都會觸發(fā)。如果注冊了多個事件 處理函數(shù),總是按照綁定的順序依次觸發(fā)。當所有綁定的事件處理函數(shù)執(zhí)行完畢后,事件繼續(xù)沿著普通的事件冒泡途徑上浮。



jQuery的 bind / unbind 方法應該說使用很簡單,而且大多數(shù)時候 可能并不會用到,取而代之的是直接用 click / keydown 之類的事件名風格的方法來做事件綁定操作。

但假設如下情況:需要在運行時根據(jù)用戶交互的結果進行不同click事件處理邏輯的綁定,因而理論 上會無數(shù)次對某一個事件進行 bind / unbind 操作。但又希望 unbind 的時候只把自己綁上去的處理邏輯給釋放掉而不是所有其他地方有 可能的額外的同一事件綁定邏輯。

這時候如果直接用 .click() / .bind('click') 加 上 .unbind('click') 來進行重復綁定的話,被 unbind 掉的將是所有綁定在元素上的 click 處理邏輯,潛在會影響到該元素 其他第三方的行為。當然如果在bind的時候是顯示定義了function變量的話,可以在unbind的時候提供 function作為第二個參數(shù)來指 定只unbind其中一個處理邏輯,但實際應用中很可能會碰到各種進行匿名函數(shù)綁定的情況。

對于這種問題,jQuery的解決方案是使用事件綁定的命名空間。即在事件名稱后添 加 .something 來區(qū)分自己這部分行為邏輯范圍。

比如 用 .bind('click.myCustomRoutine',function(){...}); 同樣是把匿名函數(shù)綁定到 click 事件(你 可以用自己的命名空間多次綁定不同的行為方法上去),當unbind的時候用 .unbind('click.myCustomRoutine') 即可 釋放所有綁定到 .myCustomRoutine 命名空間的 click 事件,而不會解除其他通過 .bind('click') 或另外的命名 空間所綁定的事件行為。

同時,使用命令空間還可以讓你一次性 unbind 所有此命名空間下的自定義事件綁定,通 過 .unbind('.myCustomRoutine') 即可。

要注意的是,jQuery的命名空間并不支持多級空間。因為在jQuery里面,如果 用 .unbind('click.myCustomRoutine.myCustomSubone') ,解除的是命名空間分別 為 myCustomRoutine 和 myCustomSubone 的兩個并列命名空間下的所有 click 事件,而不 是 "myCustomRoutine 下的 myCustomSubone 子空間"。

jQuery的 bind / unbind 方法應該說使用很簡單,而且大多數(shù)時候可能并不會用到,取而代之的是直接用 click / keydown 之類的事件名風格的方法來做事件綁定操作。

但假設如下情況:需要在運行時根據(jù)用戶交互的結果進行不同click事件處理邏輯的綁定,因而理論上會無數(shù)次對某一個事件進行 bind / unbind 操作。但又希望 unbind 的時候只把自己綁上去的處理邏輯給釋放掉而不是所有其他地方有可能的額外的同一事件綁定邏輯。

這時候如果直接用 .click() / .bind('click') 加上 .unbind('click') 來進行重復綁定的話,被 unbind 掉的將是所有綁定在元素上的 click 處理邏輯,潛在會影響到該元素其他第三方的行為。當然如果在bind的時候是顯示定義了function變量的話,可以在unbind的時候提供function作為第二個參數(shù)來指定只unbind其中一個處理邏輯,但實際應用中很可能會碰到各種進行匿名函數(shù)綁定的情況。

對于這種問題,jQuery的解決方案是使用事件綁定的命名空間。即在事件名稱后添加 .something 來區(qū)分自己這部分行為邏輯范圍。

比如用 .bind('click.myCustomRoutine',function(){...}); 同樣是把匿名函數(shù)綁定到 click 事件(你可以用自己的命名空間多次綁定不同的行為方法上去),當unbind的時候用 .unbind('click.myCustomRoutine') 即可釋放所有綁定到 .myCustomRoutine 命名空間的 click 事件,而不會解除其他通過 .bind('click') 或另外的命名空間所綁定的事件行為。

同時,使用命令空間還可以讓你一次性 unbind 所有此命名空間下的自定義事件綁定,通過 .unbind('.myCustomRoutine') 即可。

要注意的是,jQuery的命名空間并不支持多級空間。因為在jQuery里面,如果用 .unbind('click.myCustomRoutine.myCustomSubone') ,解除的是命名空間分別為 myCustomRoutine 和 myCustomSubone 的兩個并列命名空間下的所有 click 事件,而不是 "myCustomRoutine 下的 myCustomSubone 子空間"。

相關文章

  • jQuery標簽編輯插件Tagit使用指南

    jQuery標簽編輯插件Tagit使用指南

    jQuery 的 tagit 插件效果還是不錯的,今天用到該插件,下面給大家詳細講解下此插件的具體用法。這里推薦給大家,有需要的小伙伴可以參考下。
    2015-04-04
  • jquery實現(xiàn)表格行的上下移動和置頂

    jquery實現(xiàn)表格行的上下移動和置頂

    這篇文章主要為大家詳細介紹了jquery實現(xiàn)表格行的上下移動和置頂,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • jquery uploadify隱藏上傳進度的實現(xiàn)方法

    jquery uploadify隱藏上傳進度的實現(xiàn)方法

    下面小編就為大家?guī)硪黄猨query uploadify隱藏上傳進度的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • Jquery 的outerHeight方法使用介紹

    Jquery 的outerHeight方法使用介紹

    獲取第一個匹配元素外部高度默認包括補白和邊框,在本文將為大家介紹下具體的實現(xiàn)代碼,此方法對可見和隱藏元素均有效,感興趣的朋友可以了解下
    2013-09-09
  • Jquery attr("checked") 返回checked或undefined 獲取選中失效

    Jquery attr("checked") 返回checked或undefined 獲取選中失效

    $('#cb').attr('checked'); 返回的是checked或者是undefined,不是原來的true和false了,有關此問題的解決方法如下,感興趣的朋友可以參考下
    2013-10-10
  • jQuery實現(xiàn)base64前臺加密解密功能詳解

    jQuery實現(xiàn)base64前臺加密解密功能詳解

    這篇文章主要介紹了jQuery實現(xiàn)base64前臺加密解密功能,結合實例形式分析了jquery.base64.js實現(xiàn)前臺base64加密與解密功能的實現(xiàn)方法,并給出了java實現(xiàn)后臺base64加密解密的操作示例對比驗證加密效果,需要的朋友可以參考下
    2017-08-08
  • jQuery下拉友情鏈接美化效果代碼分享

    jQuery下拉友情鏈接美化效果代碼分享

    這篇文章主要介紹了jQuery下拉友情鏈接美化效果,很實用的代碼,推薦給大家,有需要的小伙伴可以參考下。
    2015-08-08
  • jquery實現(xiàn)點擊左右按鈕切換圖片

    jquery實現(xiàn)點擊左右按鈕切換圖片

    這篇文章主要為大家詳細介紹了jquery實現(xiàn)點擊左右按鈕切換圖片,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • jQuery彈出(alert)select選擇的值

    jQuery彈出(alert)select選擇的值

    利用jQuery彈出select選擇的值,當單擊按鈕的時候就會執(zhí)行的一個方法,它的作用就是alert select值
    2013-04-04
  • jQuery實現(xiàn)獲取及設置CSS樣式操作詳解

    jQuery實現(xiàn)獲取及設置CSS樣式操作詳解

    這篇文章主要介紹了jQuery實現(xiàn)獲取及設置CSS樣式操作,結合實例形式分析了jQuery中常用的addClass()、removeClass()、toggleClass()及css()相關使用方法及操作注意事項,需要的朋友可以參考下
    2018-09-09

最新評論