什么用javascript让一个对象同时监听鼠标单击和鼠标双击事件

JavaScript012

什么用javascript让一个对象同时监听鼠标单击和鼠标双击事件,第1张

<input name="test" id="test" type="button" onmouseup="c()" value="单双击测试"/>

注意不是onclick,是onmouseup

var count = 0

var timer

function c(){

count ++

timer = window.setTimeout(function(){

if(count==1) alert("单击")

else alert("双击")

window.clearTimeout(timer)

count=0

},300)

}

原则上双击和单击是不可以共存的,因为两者之间是存在逻辑冲突的,双击是由两次间隔很短的单击组成的,这样的话,如果单击和双击都设定了事件响应,当发生单击时,系统并不能立刻判断这是一个单击事件还是一个双击事件的第一次单击,这样系统就会进入等待状态,在经历一段短暂的时间后如果没有再次单击就判定为单击事件,否则就是双击。不管最终结果是什么,都必定会对程序的运行造成影响(单击事件会出现延迟,而且很容易造成误判)。所以建议你不要同时设定对象的单击和双击事件,用了单击就不要再用双击,反之亦然,否则冲突是在所难免的!

<button onmousedown="abc()">test</button>

<script >

j=0

function abc(){

clock=null

j++

if (j>=2){alert('dblclick')j=0return 0}

clock= setTimeout(function(){if(j=1)alert("click")},150)

}

</script>

你凑活试下!多测试的话,这段代码会出问题!

setTimeout 和setInterval偶尔还是会出问题

所以最好是避免在同一个按钮上同时实现单击双击事件!其实很多时候都没这个必要!

如果你说的不同元素的话,onclick,ondblclick就行了!