为什么 onload 事件不起作用?
why onload event not working?
这是我的代码:
$('.classname').on('click',function myfunc() {
alert ('working ..!');
});
上面的代码工作正常,当我点击 div .classname
时,它给了我一条消息:working ..!
现在我想将该函数 (myfunc
) 用于 onload 事件。这是我的尝试:
window.onload = myfunc;
window.onload = myfunc();
document.onload = myfunc();
<body onload = "myfunc()">
object.onload=myfunc(){alert ('working ..!');}
但其中 none 不起作用。为什么 ?!为什么,当我刷新页面时没有看到任何消息?我该如何解决?
函数作用域不是全局的,需要在点击事件外声明。
$('.classname').on('click',function myfunc() {
alert ('working ..!');
});
您已经使用函数表达式创建了一个命名函数。您已将其传递给 on()
。
因为它是一个函数表达式,所以您不会在当前范围内创建一个名为 myfunc
的变量。它只能从自身内部和 on
函数内部访问。
改用函数声明。
function myfunc() {
alert ('working ..!');
}
$('.classname').on('click', myfunc);
$(document).on('load', myfunc);
可以在 MDN 上找到有关 function declarations and expressions 的进一步阅读。
使用 ready
事件而不是加载怎么样?您可以在 jquery 文档中阅读:
.load()
Bind an event handler to the “load” JavaScript event.
.ready()
Specify a function to execute when the DOM is fully loaded.
在我看来,完整的 dom 应该完全加载(即,已经为滚动设置和计算的元素大小...)
function scroll() {
alert('test');
return false;
}
$('.link').on('click', scroll);
$(document).on('ready', scroll);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a class="link">manual test</a>
编辑
初始 post 的答案。小心,我看到你在 prop key 和 value <body onload = "myfunc()">
之间放置空格你不能这样做。应该是key=value
var myfunc = function() {
alert ('working ..!');
}
<body onload="myfunc()">
<a onclick="myfunc()">manual test</a>
</body>
这是我的代码:
$('.classname').on('click',function myfunc() {
alert ('working ..!');
});
上面的代码工作正常,当我点击 div .classname
时,它给了我一条消息:working ..!
现在我想将该函数 (myfunc
) 用于 onload 事件。这是我的尝试:
window.onload = myfunc;
window.onload = myfunc();
document.onload = myfunc();
<body onload = "myfunc()">
object.onload=myfunc(){alert ('working ..!');}
但其中 none 不起作用。为什么 ?!为什么,当我刷新页面时没有看到任何消息?我该如何解决?
函数作用域不是全局的,需要在点击事件外声明。
$('.classname').on('click',function myfunc() { alert ('working ..!'); });
您已经使用函数表达式创建了一个命名函数。您已将其传递给 on()
。
因为它是一个函数表达式,所以您不会在当前范围内创建一个名为 myfunc
的变量。它只能从自身内部和 on
函数内部访问。
改用函数声明。
function myfunc() {
alert ('working ..!');
}
$('.classname').on('click', myfunc);
$(document).on('load', myfunc);
可以在 MDN 上找到有关 function declarations and expressions 的进一步阅读。
使用 ready
事件而不是加载怎么样?您可以在 jquery 文档中阅读:
.load() Bind an event handler to the “load” JavaScript event.
.ready() Specify a function to execute when the DOM is fully loaded.
在我看来,完整的 dom 应该完全加载(即,已经为滚动设置和计算的元素大小...)
function scroll() {
alert('test');
return false;
}
$('.link').on('click', scroll);
$(document).on('ready', scroll);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a class="link">manual test</a>
编辑
初始 post 的答案。小心,我看到你在 prop key 和 value <body onload = "myfunc()">
之间放置空格你不能这样做。应该是key=value
var myfunc = function() {
alert ('working ..!');
}
<body onload="myfunc()">
<a onclick="myfunc()">manual test</a>
</body>