元素同时绑定单击、双击事件,并在选择文本时不触发事件

41 篇文章 0 订阅
20 篇文章 0 订阅

首先如果同时绑定单击和双击事件,默认会触发单击事件,双击无效,解决办法是延迟单击事件。但有时需要在元素上选择文本,单击时又会触发单击事件,而有时单击事件会弹出对话框什么的,希望选择时不要触发单击、双击事件,代码如下:

var clickTimer = null;
$('#something').bind('mousedown', function (evt) {
    //记录单击时的鼠标位置
    $(this).attr('x', evt.pageX).attr('y', evt.pageY);
}).bind('mouseup', function (evt) {
    //此处可加入单击鼠标键的判断,evt.which,1是左键、2是中键,3是右键,还可以判断是否按下功能键……

    //如果鼠标移动距离小于5则按单击处理
    if (Math.abs(evt.pageX - ($(this).attr('x') || 0)) <= 5 && Math.abs(evt.pageY - ($(this).attr('y') || 0) <= 5)) {
        clearTimeout(clickTimer);
        //延时调用单击事件
        clickTimer = setTimeout(function () {
            //单击事件……
        }, 300);
    } else {
        //选择文本……
    }
}).bind('dblclick', function (evt) {
    //双击事件
});

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hello World,

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值