对于jQuery或Javascript,如果它超出事件处理程序的范围,是否建议不要使用该变量?
实施例: 我应该避免这样做吗?
var $abc = $('#abc');
var $def = $('#def');
$('#myDiv').click(function () {
$abc.show();
$def.hide();
});
相反,它做得更好:
$('#myDiv').click(function () {
$('#abc').show();
$('#def').hide();
});
答案 0 :(得分:-1)
事件处理程序应该尽可能少地了解您的代码,并且您应该在其中编写尽可能少的逻辑,如果您显示它不是一个最好使用函数范围之外的变量,因为在任何其他函数中,如果你错过了代码的变量,你的处理程序的所有内容都将被破坏。
在我看来,更好的方法就是这样。
function doSomething () {
var $abc = $('#abc');
var $def = $('#def');
}
//Use .on method for binding events, avoid shortcuts.
$('#myDiv').on("click", doSomething);
这里处理程序将调用一个具有作用域变量的函数,避免在处理程序中编写逻辑,如果你需要更改函数调用,你可以随时用其他函数调用替换它,证明这段代码是容易遵循和保持。