【发布时间】:2018-01-29 03:07:03
【问题描述】:
我对 js 中的提升感到困惑。
我知道函数和变量被移动到程序的顶部,但是像“监听器”这样的东西会发生什么?
几天前我正在做这样的事情:
function a(){
//...
$("#myElement").trigger("click");
}
$("#myElement").on("click", function(){
console.log("click!");
});
我意识到如果我尝试在声明之前引用一个事件,该引用将被忽略。
所以,更改顺序后,它起作用了:
$("#myElement").on("click", function(){
console.log("click!");
});
function a(){
//...
$("#myElement").trigger("click");
}
所以,我的问题是:如果最后一个“函数”被移动到顶部(由于提升)导致类似于第一个示例的结果,为什么最后一个示例会起作用事件调用不起作用?
【问题讨论】:
-
无论哪种方式,您的代码都可以正常工作(当然,一旦您调用
a()- 您的代码不会) -
我已经更正了。感谢您指出这一点
-
我删除了对该错误的引用,但您的代码无论哪种方式都可以正常工作 -
a()是如何被调用的?那可能是你做错了
标签: javascript jquery hoisting