js鼠标单击和双击事件冲突问题的解决方法
来源:互联网 发布:tensorflow中文手册 编辑:程序博客网 时间:2024/06/09 13:40
情况一,
如果在一个DOM对象上同时绑定单击(click)和双击(dblclick)事件,当在这个DOM对象上发生双击事件时,第一次点击(click)会 触发一次单击(click)事件,第二次点击(连续的)也会触发双击(dblclick)事件,还是会触发单击(click)事件(IE7与 firefox)。
解决方法:
<button onclick="test(1)" ondblclick="test(2)"></button>
<script language="javascript">
var i = 1;
function test(n) {
i = n;
var val = setTimeout("call();",250);
if(i==2){
clearTimeout(val);
}
}
function call() {
if(i==1){
alert('click');
}else if(i==2){
alert('dblclick');
}
}
</script>
解释:
第一次点击记录下点击的时间,并设置单击事件的Timeout(250ms比较合适),第二次点击时判断此时点击的时间与上次点击的时间间隔,如果小于指 定的事件间隔(比如250ms),则判断为双击事件,并clear已设置的Timeout(避免触发单击事件)。
第二种:
<script type="text/javascript">
var flag=0;
function clickTest()
{
if(!flag)
{
setTimeout("tt2();",300);
}
flag++;
}
function reset()
{
flag=0;
}
function singleClick()
{
var result=document.getElementByIdx_x('result');
result.innerHTML=result.innerHTML+"click<br>";
reset();
}
function dobuleClick()
{
var result=document.getElementByIdx_x('result');
result.innerHTML=result.innerHTML+"dobule click<br>";
reset();
}
function tt2()
{
if(flag==1)
{
singleClick();
}
else
{
dobuleClick();
}
}
</script>
</head>
<body>
<input type="button" ondblclick="clickTest();" onclick="clickTest();" value="click test" />
<div id="result"></div>
0 0
- js鼠标单击和双击事件冲突问题的解决方法
- js鼠标单击和双击事件冲突问题的解决方法
- js鼠标单击和双击事件冲突问题的解决方法
- 双击和单击事件冲突解决方法
- js区分鼠标单击和双击事件
- 单击和双击事件的冲突处理
- 单击和双击事件的冲突处理
- 鼠标左键单击双击冲突的一种解决方法
- js 如何避免鼠标单击和双击冲突
- JQuery 按键单击和双击事件冲突解决方法
- VC鼠标单击与双击的冲突问题
- JS鼠标单击和双击事件参数对比
- js判断鼠标单击或者双击事件
- javascript 鼠标单击和双击事件并存的实现方法
- 鼠标单击和双击中的事件处理
- 解决左键单击和双击有冲突的问题
- js中单击和双击事件的区分
- 修复鼠标单击变双击的问题
- css 选择器
- Android运行时ART简要介绍和学习计划
- iOS的ASIHTTPRequest学习(1)
- 网页建设规范
- IP_FORWARD转发
- js鼠标单击和双击事件冲突问题的解决方法
- loadView、viewDidLoad及viewDidUnload的关系
- [LeetCode]Trapping Rain Water
- POJ 1741 Tree 解题报告(树分治)
- Android NFS文件系统挂载遇到的问题解决方法
- Oracle 块修改跟踪 (Block Change Tracking) 说明
- 启用catalog后控制文件依旧会写入备份信息
- CSS3命名规范
- 局域网内提高网速的21个技巧