哪种模式最好,为什么?
$myElements.delegate(selector, 'event1 event2', function () {
if (event.type === 'event1') { /* Handle event 1 */ }
if (event.type === 'event2') { /* Handle event 2 */ }
}
或
$myElements
.delegate(selector, 'event1', function () {
/* Handle event 1 */
}
.delegate(selector, 'event2', function () {
/* Handle event 2 */
}
换句话说,拥有一个大型统一处理程序或许多小型单独处理程序是否更好?
答案 0 :(得分:3)
我很确定第二种解决方案是首选的。来自jQuery源代码:
// Handle multiple events separated by a space
// jQuery(...).bind("mouseover mouseout", fn);
types = types.split(" ");
因此,存在拆分字符串然后为每个事件运行while循环的步骤。在第一种情况下,为每个事件调用处理程序,然后执行if语句。在第二个中,仅调用实际附加的处理程序。
此外,第二个版本也更容易阅读。
答案 1 :(得分:0)