所以,我认为吊装可以解决这个问题。我已经定义了一个函数,我试图在它定义的同一个事件中调用它。具体来说,一些示例代码不起作用:
$(window).load(function() {
doSomething()
var doSomething = function(){
alert('working')
}
})
它让我循环,因为我通过我的代码调用函数,但我只是意识到它们都是从事件处理程序调用的;没有一个是内联运行的,除了我决定应该立即运行的那个。
我想我的问题是,为什么不提升这个功能所以我可以在定义它的同一范围内调用它?
答案 0 :(得分:0)
函数定义提升仅针对函数声明,而不是函数表达式。
当DOM准备好进行交互时,您需要更改(窗口).ready,因为就绪已被触发。
希望这有帮助。
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$(window).ready(function(){
doSomething()
function doSomething(){
alert('working')
}
})
</script>
</head>
<body>
</body>
</html>
&#13;
答案 1 :(得分:0)
变化
$(window).load(function() {
到
$(window).on('load',function() {
因为$(window).load(...
已被弃用
然后,首先尝试声明var doSomething = function(){ ...
,然后在该行之后放置doSomething()
更正后的代码:
$(window).on('load',function() {
var doSomething = function(){
alert('working');
}
doSomething();
});