zoukankan      html  css  js  c++  java
  • JS事件处理中心的构想

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

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

    events: {
        "click .icon":          "open",
        "click .button.edit":   "openEditDialog",
        "click .button.delete": "destroy"
      }
    

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

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

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

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

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

    <body>
        <div data-click-center="handler1"></div>
        <div data-click-center="handler2"></div>   
    </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()
    })
    

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

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

  • 相关阅读:
    娓娓道来c指针 (4)解析c的声明语句
    Snail—UI学习之UITextField
    E
    Qt录音机
    著名的英文搜索引擎
    java中Map,List与Set的差别
    Android图片处理:识别图像方向并显示
    Unity3D中组件事件函数的运行顺序
    Android屏幕density, dip等相关概念总结
    Codeforces Round #257 (Div. 2)
  • 原文地址:https://www.cnblogs.com/myqianlan/p/4431742.html
Copyright © 2011-2022 走看看