我是javascript和jquery的新手
我制作了自己的脚本,显示了第一个跨度id 1 span id 2 spanid 3等 我做了一些循环,所以他们会每秒显示新的跨度并关闭另一个。 但我希望循环停止鼠标悬停在其中一个跨度项目上。 我试过了
<span id="example_1" class="com_items">a</span>
<span id="example_2" class="com_items">b</span>
<span id="example_3" class="com_items">c</span>
<span id="example_4" class="com_items">d</span>
<span id="example_5" class="com_items">e</span>
<span id="example_6" class="com_items">f</span>
<script>
function show_span(a){
$('.com_items_but').css('background-color','#E84700');
$('#example_but_'+a).css('background-color','#017095');
$('.com_items').hide();
$('#example_'+a).show();
}
function run_commer(){
setTimeout(function() { show_span(1);}, 0);
setTimeout(function() { show_span(2);}, 1000);
setTimeout(function() { show_span(3);}, 2000);
setTimeout(function() { show_span(4);}, 3000);
setTimeout(function() { show_span(5);}, 4000);
setTimeout(function() { show_span(6);}, 5000);
setTimeout(run_commer, 6000);
}
run_commer();
</script>
这是我试过的:
function stop_hover(){
var stop_h = 1;
}
function run_commer(){
if(stop_h != 1){
setTimeout(function() { show_span(1);}, 0);
setTimeout(function() { show_span(2);}, 1000);
setTimeout(function() { show_span(3);}, 2000);
setTimeout(function() { show_span(4);}, 3000);
setTimeout(function() { show_span(5);}, 4000);
setTimeout(function() { show_span(6);}, 5000);
setTimeout(run_commer, 6000);
}
}
但我可以看到我做错了什么
答案 0 :(得分:5)
您需要将setTimeout分配给变量,然后您可以取消它:
var timer = setTimeout(function() {
// Do something here...
}, 1000);
clearTimeout(timer); //This cancels the first timer