浅谈jquery事件处理

前端之家收集整理的这篇文章主要介绍了浅谈jquery事件处理前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

@H_502_0@在以jQuery为基础库的前端开发体系中,经常会在一个页面上通过各种标识绑定许许多多的事件。就算简单的使用了事件代理,也还是造成了事件的分散,不好维护和管理。


@H_502_0@那么,如何解决这个问题呢?而我,想到了backbone中的events。如下:


@H_502_0@<div class="codetitle"><a style="CURSOR: pointer" data="62266" class="copybut" id="copybut62266" onclick="doCopy('code62266')"> 代码如下:
<div class="codebody" id="code62266">
events: {
"click .icon": "open",
"click .button.edit": "openEditDialog",
"click .button.delete": "destroy"
}

@H_502_0@也就是,把事件聚集到一起,类似事件处理中心这么一个概念。

@H_502_0@简单的理了一下实现思路:

@H_502_0@使用事件代理的方式,将事件绑定到body节点。(某些事件自身是不冒泡的,在此暂时不做研究)

@H_502_0@对于事件的执行对象,给一个统一标识。

@H_502_0@事件的执行函数,集中处理。

@H_502_0@
代码如下:
// 事件处理中心 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]

@H_502_0@ if ($.isFunction(handler)) handler() })

@H_502_0@这样的话,一种类型的事件,集中到一起。

@H_502_0@在某些时候,能够起到很好的作用。

@H_502_0@以上所述就是本文的全部内容了,希望大家能够喜欢。

猜你在找的jQuery相关文章