我需要做些什么来制作阻止其他功能继续运行的功能? 具体来说,这里发生了什么;开始按钮启动动画以更改div的宽度。当我点击div时,如何阻止动画继续?
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
function start() {
$("#block").animate({width:'0px'},2000);
}
function stop() {
//How do I stop the start() function from continuing?
}
</script>
<style>
#block {
height:150px;
width:150px;
background-color: blue;
}
</style>
<div id="block" onclick="stop()></div>
<button onclick="start()">Start</button>
答案 0 :(得分:2)
JavaScript是单线程的,一个函数无法阻止另一个函数,因为它们无法同时运行。
话虽如此,你的问题实际上是一个jQuery动画问题。只需使用the jQuery stop
method告诉jQuery停止动画元素。
function stop() {
$("#block").stop();
}
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
function start() {
$("#block").animate({width:'0px'},2000);
}
function stop() {
$("#block").stop();
}
</script>
<style>
#block {
height:150px;
width:150px;
background-color: blue;
}
</style>
<div id="block" onclick="stop()"></div>
<button onclick="start()">Start</button>
&#13;
答案 1 :(得分:1)
停止.animate
而不是start
功能。动画发生时start
函数实际上并没有运行,它只是调用.animate
jquery方法,这就是你要中断的。
答案 2 :(得分:0)
答案 3 :(得分:0)
您可以使用JQuery stop(),其文档为here。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="jquery.min.js"></script>
<script>
function start() {
$("#block").animate({width:'0px'},2000);
}
function stop() {
$("#block").stop();
}
</script>
<style>
#block {
height:150px;
width:150px;
background-color: blue;
}
</style>
<div id="block" onclick="stop()"></div>
<button onclick="start()">Start</button>