Javascript 按钮onclick使其他脚本停止运行
我有以下代码:Javascript 按钮onclick使其他脚本停止运行,javascript,jquery,Javascript,Jquery,我有以下代码: $(function() { $("#buttonID").click( function() { // stop funcName() running }); }); $(function funcName(){ // some scripts will run on page load }); 我的问题是,当单击#buttonID时,如何停止funcName()的运行 谢谢你们 编辑:这是将在页面加载时运行的脚本:(我在谷歌上找到了
$(function() {
$("#buttonID").click( function() {
// stop funcName() running
});
});
$(function funcName(){
// some scripts will run on page load
});
我的问题是,当单击#buttonID时,如何停止funcName()的运行
谢谢你们
编辑:这是将在页面加载时运行的脚本:(我在谷歌上找到了这个脚本。这个脚本将使一个div子节点粘到它的父div上。)
我想通过点击一个按钮使这个脚本停止运行
再次感谢。JavaScript通常是单线程的,这意味着在浏览器中执行函数时,其他代码不能同时运行,包括onclick等事件处理程序(只有在函数完成后才会触发)。因此,在这种情况下,您不能从代码中断函数的执行 有两种练习: 长时间运行的函数可能会故意中断,从而允许执行其他代码
//set this to true from an event handler to stop the execution
var cancelled = false;
function longRunningFunction() {
if (cancelled) {
return;
}
// do some work, but not all
// save your progress to be able to resume when called again
if (!done) {
// release control, so that handlers can be called, and continue in 10ms
setTimeout(longRunningFunction, 10);
}
}
使用。它们允许并行运行代码,但有一些限制,并非所有浏览器都支持。事件在执行堆栈为空后立即执行。所以,您不能期望能够通过单击事件终止已经在执行堆栈中的函数。您可以做的是在事件循环中执行funcName()。例如,您可以调用函数作为requestAnimationFrame的回调函数:
docClick = document.getElementById("buttonID").addEventListener("click",function(){
state=false;
});
document.body.onload= function(){
state = true;
animationGame = requestAnimationFrame(Myfunc);
function Myfunc(){
if (state){
console.log("hi");
animationGame = requestAnimationFrame(Myfunc);
}
}
}
在以下代码中:
-您有一个红色div
-您只有一个按钮
-在CSS中,您有一个已声明但未使用的动画
-加载页面时,将自动执行第一个JS块代码,该块代码将动画“moveRight”分配给div“player”
-动画将使播放器div向右移动一秒钟
-如果用户单击“停止动画”按钮,将执行函数stopMoving(),以停止播放器div的移动
祝你好运
#玩家{
最小宽度:80px;
最小高度:80px;
背景色:红色;
位置:绝对位置;
排名前10%;
左:0%;
}
@关键帧向右移动{
0% {
排名前10%;
左:0%;
}
20% {
排名前10%;
左:20%;
}
40% {
排名前10%;
左:40%;
}
60% {
排名前10%;
左:60%;
}
80% {
排名前10%;
左:80%;
}
100% {
排名前10%;
左:100%;
}
}
停止动画
//此代码将在页面加载时执行。
//它将给div“player”一个动画,使其向右移动
让player=document.getElementById(“player”);
player.style.animationName=“moveRight”;
player.style.animationDuration=“60s”;
player.style.animationFillMode=“forwards”;
函数stopMoving(){
//当用户单击按钮时,将执行此功能。
//此功能将阻止div向右移动
player.style.animationName=“”;
}
取决于它是什么……您所说的“停止funcName()运行”是什么意思?如果它在页面加载时运行,它将在单击按钮之前启动。脚本是执行所有同步操作,还是执行异步操作?如果它都是同步的,那么没有代码可以在函数()的中间运行,所以它总是会完成的。如果存在异步内容,您可以单击按钮设置一个变量,然后在异步处理程序回调中检查该变量,以决定是否忽略它。请提供更多详细信息,您希望实现什么,以及您迄今为止尝试了什么?@nircraft谢谢您,先生。我刚刚添加了一个脚本,我想通过单击一个按钮使其停止。你们能看一下吗?@IceMetalPunk谢谢,我刚刚编辑了我的帖子。你能看一下吗?谢谢你,先生。我不太擅长JS。但我只是添加了脚本,我想让它停止运行。请你看一下,给我一个具体的解决方案。再次感谢你。