确定范围事件处理程序的JavaScript最佳实践

时间:2012-10-08 10:07:20

标签: javascript events scoping

我是一名Flash开发人员,是UX开发人员。在命名空间对象或类中编写事件处理函数时,我试图弄清楚最佳实践是什么?

当我看到一些添加嵌套处理程序的大型init函数时,我不喜欢它。阅读和杂乱很难。我认为事情应该更多。

我就是这样做的(使用jQuery),但有更好的接受方式吗?

var myNamespace = {

   init: function() {

      var self = this;
      $('#button').click( function(event) { self.onClick(event); } );

   },

   onClick: function(event) {
      // do something
   }

};

1 个答案:

答案 0 :(得分:0)

如果您正在开发一个新项目,我建议您使用Backbone,它有一个很好的方法来添加事件:

var DocumentRow = Backbone.View.extend({
    tagName: "li",
    className: "document-row",

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

    render: function() {
        ...
    },

    open: function() {
        // listener...
    }
});