clearTimeout行为异常
clearTimeout behaving oddly
本文关键字:异常 clearTimeout 更新时间:2023-09-26
我正在处理一个模板文件,有3个列表项,当您滚动显示每个列表项的高亮文本时,加载隐藏的div将变为可见。鼠标悬停时,在div再次隐藏之前会设置一个延迟。clearTimeout用于用户是否在列出的项之间切换,以便加载新选择的div,并再次隐藏旧的div。我的剧本正在运作,这就是我需要帮助的原因。当你从底部项目向上滚动项目时,clearTimeout就像我希望的那样工作,但如果你从第一个项目向下滚动,它根本不会清除超时。
<script>function myClear1()
{
clearTimeout(myFunction1, myFunction2, myFunction3);
}
function myFunction1()
{
setTimeout(function(){document.getElementById('relatedproduct1').style.display = 'none';},500);
}
function myFunction2()
{
setTimeout(function(){document.getElementById('relatedproduct2').style.display = 'none';},500);
}
function myFunction3()
{
setTimeout(function(){document.getElementById('relatedproduct3').style.display = 'none';},500);
}
</script>
这些是脚本,下面我将在页面上使用它的地方添加代码。
<form class="relatedcheckboxes">
<input type="checkbox" class="relatedcheckboxes">
<div style="display:inline;cursor:pointer; color:#00F; background-color:#FFF;"onmouseover="document.getElementById('relatedproduct1').style.display = 'block'; document.getElementById('selectedProductsGroup').style.display ='none'; myClear1()"onmouseout="myFunction1()">Product Number:</div> Product Name - Sale Price
<br>
<input type="checkbox" name="Product Name" value="" class="relatedcheckboxes">
<div style="display:inline; cursor:pointer; color:#00F; background-color:#FFF;"onmouseover="document.getElementById('relatedproduct2').style.display = 'block';document.getElementById('selectedProductsGroup').style.display ='none';myClear1()"onmouseout="myFunction2()">Product Number</div>: Product Name - Sale Price
<br />
<input type="checkbox" name="Product Name" value="" class="relatedcheckboxes">
<div style="display:inline; cursor:pointer; color:#00F; background-color:#FFF;"onmouseover="document.getElementById('relatedproduct3').style.display = 'block'; myClear1()"onmouseout="myFunction3()">Product Number</div>: Product Name - Sale Price
</form>
必须将setTimeout
的返回值传递给clearInterval
,而不是函数。例如:
var timer = setTimeout(func, 1000);
clearTimeout(timer);
用最少的更改来调整你的代码是这样的:
var timer1;
function myClear1(){
clearTimeout(timer1);
}
function myFunction1() {
return setTimeout(function(){
document.getElementById('relatedproduct1').style.display = 'none';
},500);
}
<div onmouseover="myClear1()" onmouseout="timer1=myFunction1()">...</div>...
相关文章:
- 在javaservlet doPost方法中启动线程时,无法返回异常消息
- SetTimeout and clearTimeout in Javascript
- document.applet.method在Mounatin Lion上抛出safari 6+JDK7异常
- 为什么浏览器没有为语法错误抛出异常
- java,javascript签名的小程序(文件选择,ftp上传)安全性/套接字异常
- node.js和express中的异常处理
- 派生进程的stdout在管道传输时工作异常
- NodeJS和pg promise,捕获PostgreSQL异常
- 当显式定义控制器参数时,默认模型绑定器会发生异常
- 显示引导弹出操作异常的逻辑
- 调用谷歌地图路线服务时未捕获的异常
- web配置http到https重定向异常
- 转换异常时间&Datestring到JavaScript日期
- 为什么在python中使用异常比javascript更容易接受
- PHP REST服务抛出异常——希望避免控制台错误
- JS异常:animate不是一个函数
- 在蓝鸟中处理异常
- Meteor:异步函数回调异常:onAfterAction
- 在js中捕获自定义异常
- clearTimeout行为异常