在Javascript中通用事件绑定到函数调用(良好实践?)

时间:2013-01-31 20:40:49

标签: javascript javascript-events

我对不同的JS框架没有很多经验,但是我已经玩了一些关于骨干的东西,并试图将不同框架的一些概念引入到我的vanilla jQuery应用程序中。我最近想出了一些东西,我不确定这是不是一个好习惯。我只想获得一些关于在Javascript中处理事件绑定的最佳方法的反馈。

我有这样的事情:

init: function() {
  this.cacheElements(); // Caches some dom elements
  this.bindEvents(); // Sets up event binding on load
  this.render(); // Does the first app render
},

bindEvents: function() {
  $('#app-panel').on('click', 'a[data-control]', $.proxy(this.appControl, this) );
},

appControl: function( e ) {
  var func = $(e.currentTarget).data('control');

  e.preventDefault();
  this[func].call(this, e);
}

所以我想的是在DOM中我可以使用data-control属性设置按钮/链接。像这样:

<a href="#edit" data-control="editSomething" data-id="{{someId}}">Edit</a>

任何时候点击它们都会立即调用appControl,以防止默认事件处理并调用属性中的指定函数。

首先,我正在尝试制作更高效的代码。自从我开始真正进入JS开发以来,我将一个单独的锚点/按钮绑定到一个特定的事件,然后调用一个特定的函数。我的bindEvents函数将是巨大的(几十个事件绑定)因为我将大部分事件处理放在那个函数中。然后在大多数函数调用中,我将e.preventDefault()更多地膨胀代码。

这有意义吗?这样做有什么不对吗?

0 个答案:

没有答案