元素上同时绑定单击和双击事件后双击触发单击事件如何解决

双击(dblclick)的流程是:mousedown,mouseout,click,mousedown,mouseout,click,dblclick;

在双击事件(dblclick),触发的两次单击事件(click)中,第一次的单击事件(click)会被屏蔽掉,但第二次不会。也就是说双击事件(dblclick)会返回一次单击事件(click)结果和一次双击事件(dblclick) 结果。而不是一次双击事件(dblclick)结果和两次单击事件结果(click)。 

所以可以使用计时的方式去除掉一个多余的单击事件就行了

<script language="javascript">
$(function(){
    var TimeFn = null;
    $('.testdiv').click(function () {
        clearTimeout(TimeFn);
        TimeFn = setTimeout(function(){
            alert('click')
        },300);
    });
    
    $('.testdiv').dblclick(function () {
        clearTimeout(TimeFn);
        alert('dbclick');
    })

});
</script>

 

posted @ 2013-11-05 18:01  sifo  阅读(1132)  评论(0)    收藏  举报