jquery单击事件和双击事件冲突解决方案

1 篇文章 0 订阅
1 篇文章 0 订阅

jquery单击事件和双击事件冲突解决方案

这篇文章主要为自己记录下找到的jquery单击和双击事件冲突的一个解决方案,方便自己以后使用,有兴趣的小伙伴们也可以参考下或者查看原帖> http://www.jb51.net/article/80343.htm
  1. 功能要求
    功能图片
    在实际操作中双击只会弹出对话框无法进入到修改界面,主要也是无语客户不让我把功能互换说是这是他们的操作习惯。
  2. 原代码
//#region 修改房号信息
$("span[id^=HouseNoSpan]").dblclick(function () {
  $(this).hide();
  var NowNo = $(this).attr("ID").substring("HouseNoSpan".length);
  var TextID = "HouseNoText" + NowNo
  $("#" + TextID + "").show();
  $("#HouseNo" + NowNo + "").select()
})
$("span[id^=HouseNoText]").click(function () {
  self.hide();
})
$("input[id^=HouseNo]").blur(function () {
  var NowNo = $(this).attr("ID").substring("HouseNo".length);
  $("#HouseNoText" + NowNo + "").hide();
  $("#HouseNoSpan" + NowNo + "").show();
  var HouseNo = $(this).val();
  $("#HouseNoSpan" + NowNo + "").html(HouseNo);
  $("#H_HouseNo" + NowNo + "").val(HouseNo);
 })
 //#endregion
 //弹出对话框
 $("span[id^=HouseNoSpan]").click(function () {
   OpenWin(this)
 })
  1. 解决方法
    这里主要用到两个HTMLDOMWindow对象中函数,settimeout(),clearTimeout()。setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。clearTimeout() 方法可取消由 setTimeout() 方法设置的 timeout。具体用法可以自己google或百度下,我就不赘述了。

  2. 修改后代码

var timer = null;
$("span[id^=HouseNoSpan]").dblclick(function () {
  clearTimeout(timer);
  $(this).hide();
  var NowNo = $(this).attr("ID").substring("HouseNoSpan".length);
  var TextID = "HouseNoText" + NowNo
  $("#" + TextID + "").show();
  $("#HouseNo" + NowNo + "").select()
})
//弹出对话框
$("span[id^=HouseNoSpan]").click(function () {
  clearTimeout(timer);
  //在单击事件中添加一个setTimeout()函数,设置单击事件触发的时间间隔 
  timer = setTimeout(function () {
   OpenWin(this)
   }, 300);         
})
经过测试以上代码可行,该冲突解决方案主要通过DOM中的setTimeout方法进行判断是单击还是双击
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值