<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      代碼改變世界

      大叔手記(4):jQuery自定義綁定的魔法升級版

      2011-12-13 20:28  湯姆大叔  閱讀(7513)  評論(6)    收藏  舉報

      jQuery自定義綁定

      首先讓我們來看看jQuery的自定義綁定的使用方法,你可以使用bind或者live來訂閱一個事件(當然1.7以后也可以使用on了),代碼如下:

      $("#myElement").bind('customEventName',function(e){ ... });
      $(".elementsClass").live('customEventName',function(e){ ... });

      然后通過如下方式來觸發事件:

      $("#myelement").trigger('customEventName');


      或者你也可以為自定義事件增加額外的參數,樣例如下:

      $("#myelement").bind('customEventName',function(e,data){ if(data.custom) ... });
      $("#myelement").trigger('customEventName',{ custom: false });

      魔法升級

      所謂魔法升級,其實是想讓整個程序所有的自定義事件能夠自動注冊并綁定jQuery上,然后執行的時候,所有注冊該事件的模塊都會執行。比如模塊User.js里定義的UserUpdate方法和Blogs.js里定義的BlogUpdate方法都定義了在發布一篇博客的時候需要執行的function函數,整個時候我們可以通過注冊統一的事件名稱(例如BlogAdded)bind到jQuery指定的一個容器上(例如document)上,然后發布博客成功以后,執行$(document).trigger("BlodAdded")就OK了。

      下面我們給個通用的樣例代碼:

          var components = [User, Blog, Group, Friend, Topic, Photo];
      var eventTypes = ["AddComplete", "UpdateComplete", "DeleteComplete", "LockComplete", "UnLockComplete"];
      $.each(components, function(i,component) {
      $.each(eventTypes, function(i,eventType) {
      var handler = component[eventType];
      if (handler) $(document).bind(eventType, handler);
      });
      })

      然后每個js模塊定義的代碼安裝如下格式:

          User= {
      AddComplete: function(e, data) {
      //...
      },
      UpdateComplete: function(e, data) {
      //...
      }
      }

       

      這樣,不管在任何地方,如果我們需要的話,就可以使用jQuery的方式來觸發我們的事件了:

      $(document).trigger("UpdateComplete", data); 


      通過這種方法,大家可以發現一個模塊的method只能注冊一個事件,那如果我們通過一個方法來注冊多個事件觸發的話,可以使用如下方式:

          var blogController = {
      blogAddOrUpdateComplete: function() {
      //...
      }
      }
      blogController.blogAddComplete = blogController.blogUpdateComplete = blogController.blogAddOrUpdateComplete;

       

      最后注意:本文只是展示一個簡單的例子,不要混用不同module同一事件名稱的用法哦,比如,User.js里的AddComplete和Blog.js里的AddComplete可能根本就沒有關系,也就是說只處理自己相應的邏輯,這時候,就不應該統一處理這個事件,但如果要檢測的東西是一樣的話,就可以使用,比如DisableUserComplete,就可以通用,因為User模塊需要處理禁用賬戶以后的操作,Blog模塊可能也需要處理禁用賬戶以后的操作。

      結束語

      大叔手記:旨在記錄日常工作中的各種小技巧與資料(包括但不限于技術),如對你有用,請推薦一把,給大叔寫作的動力



      主站蜘蛛池模板: 沂水县| 韩国午夜理伦三级| 国产专区一线二线三线码| 国产普通话刺激视频在线播放| 国产精品亚洲欧美大片在线看| 亚洲v欧美v国产v在线观看| 欧美成人h亚洲综合在线观看| 十八禁国产一区二区三区| 国产亚洲一二三区精品| 国产国产午夜福利视频| 扶绥县| 日本中文字幕不卡在线一区二区| 最新国产精品好看的精品| 天堂av色综合久久天堂| gogogo高清在线播放免费| 中文精品无码中文字幕无码专区 | 云霄县| 成人一区二区三区在线午夜| 91青青草视频在线观看| 亚洲中文字字幕精品乱码| 亚洲精品日韩在线丰满| 中文字幕人妻中文AV不卡专区| 精品粉嫩国产一区二区三区| 亚洲精品一区二区妖精| 在线播放亚洲成人av| 国产精品久久久久无码网站| 国产精品亚欧美一区二区三区| 日韩一卡二卡三卡四卡五卡 | 8x国产精品视频| 国产成人一区二区三区视频免费 | 精品一区二区三区不卡| 亚洲日韩一区二区| 99精品国产精品一区二区| 天天躁日日躁狠狠躁中文字幕| 欧美视频二区欧美影视| 男人的天堂av一二三区| 久久亚洲国产五月综合网| 国产亚洲欧美另类一区二区| 极品少妇无套内射视频| 国产一区二区不卡视频在线| 中国少妇人妻xxxxx|