浅谈jquery事件处理

时间:2016.04.20 发布人:csMZA10

浅谈jquery事件处理

已解决问题

谷歌csMZA10用户在2016.04.20提交了关于“完美世界浅谈jquery事件处理”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-02-26T21:21:00。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,滴水之恩,来日我当涌泉相报 !

希望以下的回答,能够帮助你。

第1个回答

用户名:穆瑞MOONEI  

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

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

复制代码代码如下:
events:{
"click.icon":"open",
"click.button.edit":"openEditDialog",
"click.button.delete":"destroy"
}

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

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

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

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

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

复制代码代码如下:
<body>
<divdata-click-center="handler1"></div>
<divdata-click-center="handler2"></div>
</body>
//事件处理中心
varClickEventCenter={
"handler1":function(){
//dosomething
},
"handler2":function(){
//dosomething
}
//
}
//事件绑定
$body.on("click","[data-click-center]",function(){
varhandlerName=$(this).data("click-center");
varhandler=ClickEventCenter[handlerName]

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