淺談jquery事件處理
在以jQuery為基礎庫的前端開發體系中,經常會在一個頁面上通過各種標識綁定許許多多的事件。就算簡單的使用了事件代理,也還是造成了事件的分散,不好維護和管理。
那麼,如何解決這個問題呢?而我,想到了backbone中的events。如下:
代碼如下:
events: {
"click .icon": "open",
"click .button.edit": "openEditDialog",
"click .button.delete": "destroy"
}
也就是,把事件聚集到一起,類似事件處理中心這麼一個概念。
簡單的理了一下實現思路:
使用事件代理的方式,將事件綁定到body節點。(某些事件自身是不冒泡的,在此暫時不做研究)
對於事件的執行對象,給一個統一標識。
事件的執行函數,集中處理。
代碼如下:
// 事件處理中心
var ClickEventCenter = {
"handler1": function () {
// do something...
},
"handler2": function () {
// do something...
}
// ...
}
// 事件綁定
$body.on("click", "[data-click-center]", function () {
var handlerName = $(this).data("click-center");
var handler = ClickEventCenter[handlerName]
if ($.isFunction(handler)) handler()
})
這樣的話,一種類型的事件,集中到一起。
在某些時候,能夠起到很好的作用。
以上所述就是本文的全部內容了,希望大家能夠喜歡。