我对不同的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()更多地膨胀代码。
这有意义吗?这样做有什么不对吗?