我正在使用两个同时触发的脚本.他们似乎引起了冲突.我的问题是如何在另一场火灾之后让一个人开火半秒到一秒钟?我认为这可能会解决我遇到的问题.
我正在使用jQuery,但我不确定如何去做.
谢谢
注意我没有在这里发布脚本,他们是不敬的.我只需要知道如何延迟一个射击直到另一个射击.我最后要点击的是位于HTML底部的另一个位于头部.这两个脚本在他们的工作中彼此完全无关.
编辑这个问题源于我发布的另一个问题.这里 - Javascript/Fancybox错误? - 我考虑过它,并想尝试添加一个延迟,但我也很好奇如何添加延迟无论如何与我遇到的问题无关.
两个脚本无法同时触发.Javascript是单线程的,并且没有两个脚本同时运行.一个将运行完成,然后下一个将运行.如果两者之间存在冲突,那么它与脚本的编写方式有关,我们只能通过查看脚本和导致它们运行的上下文来帮助您解决问题.
此外,在加载脚本时尝试在head标记中运行的任何内容都可能无法操作浏览器DOM,因为它尚未到位.它必须被延迟,直到DOM成功加载并准备好进行操作.
很容易有一个javascript函数调用另一个javascript函数:
function doStuff1() {
// do doStuff1 stuff
doStuff2();
}
function doStuff2() {
// do doStuff2 stuff
}
doStuff1(); // call doStuff1 which will also call doStuff2
Run Code Online (Sandbox Code Playgroud)
您现在已经添加了一部分问题.你问如何实现延迟.您可以使用计时器在将来的某个时间运行某些代码:
setTimeout(doStuff2, 5000); // run doStuff2() in 5 seconds
Run Code Online (Sandbox Code Playgroud)
如果您想首先运行fancybox,请使用fancybox onComplete回调:
$j(document).ready(function(){
$j('#start').fancybox({
'onComplete': function () {
Engine.Initialize();
}
});
});
Run Code Online (Sandbox Code Playgroud)
否则,在调用自定义初始化函数后放入fancybox代码:
$j(document).ready(function(){
Engine.Initialize();
$j("#start").fancybox({
'padding' : 0
});
});
Run Code Online (Sandbox Code Playgroud)