var dt2;
var st;
function test() {
dt1 = new Date();
st = setTimeout(tt, 1000);
return true;
} function tt() {
dt2 = new Date();
if (dt2.getTime() - dt1.getTime() > 1000) {
clearTimeout(st);
$("#ttt").html("hahahahaha");return true;
}
}
<div id="ttt" style="height: 100px; border: 1px solid #c0c0c0;" onmousedown="return test();">
test</div>
用vs调试,长按之后,tt()方法断点可以进去,div的内容可以被更新。
但是,如果不加断点,一直按,就没有任何效果。
请问这是怎么回事啊?我要实现的效果: 长按div,超过一秒就执行后续操作。
var dt1;
var dt2;
var st;
function test() {
dt1 = new Date();
st = setTimeout(tt, 1000);
return true;
} function tt() {
dt2 = new Date();
if (dt2.getTime() - dt1.getTime() > 1000) {
clearTimeout(st);
$("#ttt").html("hahahahaha");return true;
}
}
dt1给漏掉了
test</div>
var dt1;
var dt2;
var st;
function fn(){
dt2 = new Date();
if (dt2.getTime() - dt1.getTime() < 1000) {
clearTimeout(st);
}
}
function test() {
dt1 = new Date();
st = setTimeout(tt, 1000);
return true;
} function tt() {
$("#ttt").html("hahahahaha");return true;
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="jquery.js" type="text/javascript"></script>
</head>
<body>
<div id="ttt" style="height: 100px; border: 1px solid #c0c0c0;" onmousedown="test();" onmouseup="testup()">test</div>
<script type="text/javascript">
var timer, timeout = false;
function test() {
timer = setTimeout(function(){
$("#ttt").html("hahahahaha");
timeout = true;
}, 1000);
return true;
} function testup(){
if(!timeout){
clearTimeout(timer);
}
}
</script>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="jquery.js" type="text/javascript"></script>
</head>
<body>
<div id="ttt" style="height: 100px; border: 1px solid #c0c0c0;" onmousedown="testdown();" onmouseup="testup()">test</div>
<script type="text/javascript">
var timer;
function testdown() {
timer = setTimeout(function(){
$("#ttt").html("hahahahaha");
}, 1000);
}
function testup(){
clearTimeout(timer);
}
</script>
</body>
</html>
<script type="text/javascript">
var dt2;
var st;
function testdown() {
dt1 = new Date();
st = setTimeout(tt, 1000);
//return true;
} function tt() {
dt2 = new Date();
alert(dt2.getTime() - dt1.getTime());
if (dt2.getTime() - dt1.getTime() > 1000) {
clearTimeout(st);
$("#ttt").html("hahahahaha");
//return true;
}
}
</script>还有,你少个onmouseup,这样会导致不管你有没有长按,只要你按过鼠标,1秒后就会执行tt()
<html>
<head>
<title>demo</title>
<script>
var timer;
var starTimer = function(){
timeoutID = setTimeout(function(){
alert("动作");
},1000);
}
var clearTimer = function(){
clearTimeout(timeoutID);
}
</script>
</head>
<body>
<div id="ttt" style="height: 100px; border: 1px solid #c0c0c0;" onmouseover="starTimer();" onmouseout="clearTimer();" >
test
</div>
</body>
</html>混点 。
var dt2;
var st;
function test() {
dt1 = new Date();
st = setTimeout(tt, 1030);
} function tt() {
st = null;
$("#ttt").html("hahahahaha");
} function clearSt(){
if(st){clearTimeout(st);}
} <div id="ttt" style="height: 100px; border: 1px solid #c0c0c0;" onmousedown="test();" onmouseup='clearSt();'>
test</div>