jQuery事件......应该进入多少代码?

时间:2011-12-11 05:33:58

标签: javascript jquery performance javascript-events

如果我将更改事件附加到很多项目,比如说大表单上的每个复选框,然后根据它处理规则,我应该执行单独的函数而不是在事件内的匿名函数中使用该代码吗?

$(".magic_checkbox").change(function(event){
  //somewhat lengthy code here
});

这是为每个复选框创建一个单独的JavaScript函数对象,还是它们都将使用一个指针?如果它们都是重复的,那么在宏观方案中这是否重要?

1 个答案:

答案 0 :(得分:2)

只有一个匿名函数,但您可能需要考虑委托事件方法。在.magic_checkbox元素的父对象上创建单个事件处理程序。然后执行以下操作:

$("#parentObjectId").on("change", ".magic_checkbox", function(event){
    // your somewhat lengthy code here
});

或......

$("#parentObjectId").on("change", ".magic_checkbox", function(event){
    somewhatLengthyMethod();
});

function somewhatLengthyMethod() {
    // your somewhat lengthy code here
}

在两者之间进行选择只是一个偏好问题。关键是事件委托,它导致事件处理程序更少,因此效率更高。