过程:jQuery中的on()方法,使用touchend事件,再用seTimeout()做延迟执行代码。
结果 / 问题 :延迟不管用!
部分源代码如下:
$("div").attr("class","box").on({
"touchstart": function() {
$(this).css({"opacity": 0});
},
"touchend": function() {
setTimeout(function() {
$(this).css({"opacity": 1})
},3000);
}
edge,google的控制台都没有报错,但是延迟没用!
尝试的解决方法(都不行!):
1、把setTimeout()的第一个参数设成空函数,把要执行的代码放在setTimeout()的后面:
setTimeout(function() {},3000)
$(this).css({"opacity": 1})
2、把on()方法拆成两个:
.on("touchstart",function(){省略省略})
.on("touchend",function(){省略省略})
求哪位高人解决!
setTimeout(function() {
console.log("99")
},3000);
我试了一下 打印 可以 执行 。没执行 说明 你 里面代码有问题 。 setTime out 有自己的 函数 域 。有可能是 this指向问题
换成 箭头函数试试
setTimeout(function() {
console.log("99")
},3000);
1、把setTimeout()的第一个参数设成空函数,把要执行的代码放在setTimeout()的后面:
setTimeout(function() {},3000)
$(this).css({"opacity": 1})
放后面当然是没有用的,要放到里面
setTimeout(()=>{
$(this).css({"opacity": 1})
},3000)