如果我将更改事件附加到很多项目,比如说大表单上的每个复选框,然后根据它处理规则,我应该执行单独的函数而不是在事件内的匿名函数中使用该代码吗?
$(".magic_checkbox").change(function(event){
//somewhat lengthy code here
});
这是为每个复选框创建一个单独的JavaScript函数对象,还是它们都将使用一个指针?如果它们都是重复的,那么在宏观方案中这是否重要?
答案 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
}
在两者之间进行选择只是一个偏好问题。关键是事件委托,它导致事件处理程序更少,因此效率更高。