避免触发ondbclick的时候触发onclick,可以利用javascript延迟的机制来实现。
思路如下:
1、声明一个全局的计时器变量如:clickTimer
2、在代理单击事件里设置计时器,默认220毫秒之后触发真正的单击事件处理函数
3、在双击事件里判断计时器变量,如果该变量不为NULL,则说明在触发该双击事件前触发了单击事件,取消计时器,因为真正的单击事件处理函数在220毫秒之后才会触发,所以在这个时候结束定时器,则真正单击事件处理函数不会被执行。
var timerClick=null;
//单击事件代理
function _onNodeClick(id){
//onNodeClick才是真正的单击事件处理函数
timerClick=window.setTimeout("onNodeClick('"+id+"')",220);
}
//双击事件处理函数
function _onNodeDbClick(id){
if(timerClick){
window.clearTimeout(timerClick);
}
}