我必须支持 Peter Bailey 的回答,因为最好将 MV 和 C 分开。我发现 GUI 小部件的最佳样式是创建一个初始化小部件的函数(创建 HTML、添加样式或附加动画事件),然后为使用它的不同位置附加自定义事件处理程序。
自定义事件是可重用小部件的关键。它使代码对 GUI 小部件中的 DOM 更改不那么脆弱,并使您的代码更具可读性。
例如,假设您有一个自定义按钮,它可以动态创建一个 HTML 结构,如下所示:
<div class="MyButton"><div class="button-helpful-wrapper"><img src="/blah.png"/></div></div>
假设您的初始化代码添加了一些淡入淡出或使用点击事件的任何内容。没关系。
有趣的是当你想使用这个按钮时;您将“点击”事件附加到哪个 div?不必知道 GUI 小部件的结构,最好为小部件创建一种新类型的事件。像这样:
$('#MyButton_Instance1').bind('myclick', function () {...} );
并且完全不知道小部件的结构。
要完成这项工作,您只需添加一些绑定/触发器,将实际事件代理到您的自定义事件。放置它的最佳位置是在您的小部件初始化代码中:
$('.MyButton').myButton();
在哪里
myButton = function () {
$(this).find('.button-helpful-wrapper').bind('click', function (event) {
$(this).trigger('myclick', event);
});
}
这使您的小部件非常可重用,因为您没有附加到特定的 DOM 元素事件,而是附加到通用小部件事件。试试看。