2个回答
展开全部
<!DOCTYPE HTML>
<html>
<head>
<title>TestMouse</title>
<meta charset="utf-8"/>
</head>
<style>
body{
background-color: gray;
}
.rect{
position: relative;
display: block;
width: 100px;
height: 100px;
background-color: red;
margin: 0 auto;
cursor: pointer;
-moz-border-radius: 12px;
-webkit-border-radius: 12px;
border-radius: 12px;
border:3px solid yellow;
}
.timeBox{
position: relative;
display: block;
margin:10px auto;
width: 300px;
height: 35px;
text-align: center;
}
</style>
<body>
<div class="rect" id="rect" onclick="setCount()"></div>
<input type="text" class="timeBox" id="timeBox" disabled/>
<script>
/* 主要思路是:
一开始时标签上是有onclick属性的,然后点击之后进入方法,
便把onclick事件移除,且
方法中有setTimeout函数,设置时间的时间到期之后便会执行,
执行的功能就是给标签添加onclick事件,那么点击就会又有效果了
*/
var rect=document.getElementById("rect");
var timer=1;
var clickCount=0;
var runCount=0;
//addEvnetListner有兼容性问题,此处我只针对Mozilla系列
rect.addEventListener("click",function(){clickCount++;},false);
function setCount(){
rect.onclick=null;
timer=setTimeout(timeOver,2000);
}
function timeOver(){
runCount++;
rect.onclick=setCount;
document.getElementById("timeBox").value="点击次数:"+clickCount+" ,执行次数:"+runCount;
//clearTimeout(timer);
}
</script>
</body>
</html>
追问
不是click事件,是鼠标移入事件
$("#Show_g").live("mouseleave",function(){
ShowgOut(this);//调用的方法
});
移入事件是这么写的,移除不了 移入事件
追答
你只要将事件改一下就可以了:
1,rect.addEventListener("click",function(){clickCount++;},false);
这里面的click单击事件改成mouseover,注意大小写,结果:
rect.addEventListener("mouseover",function(){clickCount++;},false);
2,rect.onclick=setCount;这儿的onclick改成onmouseover,结果:
rect.onmouseover=null;
3,就是下面 显示为点击次数的说明就要改成,鼠标经过次数咯,结果:
document.getElementById("timeBox").value="鼠标进过次数:"+clickCount+" ,执行次数:"+runCount;
展开全部
使用时间差。
比如:
var start=new Date().getTime();
var test=function(){
var now=new Date().getTime();
if(now-start>2000){
//console.log('超过2秒');
start=now;
}
};
test();
setTimeout(test,2100);
追问
你这个是延迟执行,我要的是2秒内移入多次只执行一次
追答
一个道理啊,第一次移入时执行,再移入时,如果时间不大于2s则不执行,不正好满足你的需求么
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询