简单地说:
我想要的:
点击调用函数xxx()
时,双击另一个function yyy()
当我将onclick
和ondblclick
放在一起时只执行了xxx()
,那么如何实现类似的效果?
谢谢!
答案 0 :(得分:2)
问题在于,在某些浏览器中,您的onclick处理程序会抓取该对的第一次单击,并且ondblclick处理程序永远不会看到该操作。在其他浏览器中,单击被看到两次,双击也是如此。双击的潜在时间因操作系统,浏览器和用户配置而异。
至少可以说,以便携方式处理这个问题很困难。
我建议只使用点击处理程序。但是让click处理程序设置一个变量和一个超时。如果在没有第二次单击的情况下命中超时,请执行onclick操作。如果在该时间内发生第二次单击,请确保超时不执行任何操作并执行ondblclick操作。缺点是这意味着双击不会影响本地操作系统,浏览器和用户配置的规则。
答案 1 :(得分:0)
试试这个:
var dbclkTimeout=-1;
somelement.onclick=function(){
if(dbclkTimeout==-1)
dbclkTimeout=setTimeout(function(){onclickcallback();dbclkTimeout=-1;} , 200);
else {
clearTimeout(dbclkTimeout);
dbclkTimeout=-1;
ondbclickcallback();
}
}