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

jQuery綁定自定義事件的魔法升級(jí)版

 更新時(shí)間:2016年06月30日 10:48:43   作者:湯姆大叔  
這篇文章主要介紹了jQuery綁定自定義事件使用技巧,通過循環(huán)綁定所有的自定義事件,在恰當(dāng)?shù)臅r(shí)機(jī)調(diào)用,需要的朋友可以參考下。

jQuery綁定自定義事件

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

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

然后通過如下方式來觸發(fā)事件:

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

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

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

魔法升級(jí)

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

下面我們給個(gè)通用的樣例代碼:

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);
 });
}) 

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

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

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

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

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

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

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

以上就是本文的全部內(nèi)容,了解更多jQuery的語法,大家可以查看:《jQuery 1.10.3 在線手冊》,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論