有人可以帮助我,我试图让这个javascript在使用超时3秒延迟后启动它的功能。
我还在学习javascript和jquery,如果有人能告诉我哪里出错以及如何修复它,我将不胜感激。
谢谢。
<script type="text/javascript">
setTimeout(function(){
window.onload = function showPopUp(el) {
var cvr = document.getElementById("cover")
var dlg = document.getElementById("dialog")
cvr.style.display = "block"
dlg.style.display = "block"
if (document.body.style.overflow = "hidden") {
cvr.style.width = "1024"
cvr.style.height = "100%"
}
}
},3000);
</script>
答案 0 :(得分:2)
简而言之,你有这个:
setTimeout(function () {
window.onload = function() {
// do stuff...
}
}, 3000);
那不行。这表示在3秒后,为窗口的onload
事件分配处理程序。此时事件已经(很可能)被解雇了。所以这个功能不会执行。
相反,翻转它。
window.onload = function() {
setTimeout(function () {
// do stuff...
}, 3000);
}
所以在这里,当窗口加载时,你会在3秒后做一些事情。
答案 1 :(得分:1)
这是错误的:
setTimeout(function () {
window.onload = function showPopUp(el) {
这会在3秒后分配onload
处理程序,此时窗口可能已经加载。
摆脱window.onload = function showPopUp(el) {...}
部分,等待加载脚本3秒后。
setTimeout(function () {
var cvr = document.getElementById("cover")
var dlg = document.getElementById("dialog")
cvr.style.display = "block"
dlg.style.display = "block"
if (document.body.style.overflow = "hidden") {
cvr.style.width = "1024"
cvr.style.height = "100%"
}
}, 3000);
或者在所有资源加载完毕后,将setTimeout
和window.onload
反转等待3秒。
window.onload = function showPopUp(el) {
setTimeout(function () {
// ...
}, 3000);
};