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