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

本人需要给bootstrap-treeview的树节点添加双击事件。而该插件原生方法中不带双击事件功能。该插件的节点默认绑定的单击事件,由此引起了单击事件和双击事件的冲突。

编写测试代码

引起冲突的代码:

问题效果展示:

每一次触发双击事件都会引起两次单击事件

 

解决冲突的代码:

解决问题效果展示:

完美解决单击事件和双击事件冲突问题

 

这里主要用到两个HTML DOM Window对象中函数,settimeout(),clearTimeout()

我这里两个单击事件触发的时间间隔设置在等于300毫秒,这里需要根据实际情况而定。

源码如下:

<!DOCTYPE html>
<html>

    <head>
        <meta charset="utf-8">
        <title></title>
    </head>

    <body>
        <div>事件监控</div>
    </body>
    <script type="text/javascript" src="js/jquery.min.js"></script>
    <script type="text/javascript">
        /*$(function() {
                    $("div").bind("click.a", function() { //单击事件 
                        $("body").append("<p>click事件</p>");
                    })
                    $("div").bind("dblclick.a", function() { //双击事件 
                        $("body").append("<p>dblclick事件</p>");
                    })
                    $("div").bind("mouseover.a", function() { //鼠标经过元素的事件 
                        $("body").append("<p>mouseover事件</p>");
                    })
                    $("div").bind("mouseout.a", function() { //鼠标移出元素的事件 
                        $("body").append("<p>mouseout事件</p>");
                    })
                })*/
        $(function() {
            var timer = null;
            $("div").bind("click.a", function() { //单击事件 
                clearTimeout(timer);
                timer = setTimeout(function() { //在单击事件中添加一个setTimeout()函数,设置单击事件触发的时间间隔 
                    $("body").append("<p>click事件</p>");
                }, 300);
            })
            $("div").bind("dblclick.a", function() { //双击事件 
                clearTimeout(timer); //在双击事件中,先清除前面click事件的时间处理 
                $("body").append("<p>dblclick事件</p>");
            })
            $("div").bind("mouseover.a", function() { //鼠标经过元素的事件 
                $("body").append("<p>mouseover事件</p>");
            })
            $("div").bind("mouseout.a", function() { //鼠标移出元素的事件 
                $("body").append("<p>mouseout事件</p>");
            })
        })
    </script>

</html>

 

转载于:https://www.cnblogs.com/chengxuyuanzhilu/p/5071941.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<h3>回答1:</h3><br/>jQuery的click事件是指当用户点击页面上的元素时,触发绑定在该元素上的click事件。可以使用jQuery的click()方法来绑定click事件,例如: ``` $("button").click(function(){ alert("您点击了按钮!"); }); ``` 上面的代码会在用户点击页面上的按钮时弹出一个提示框。除了按钮,还可以绑定click事件到其他元素,比如链接、图片等。 <h3>回答2:</h3><br/>jQuery click事件JavaScript中最常用的事件之一。click事件在HTML文档中被触发当用户在页面或者元素上点击鼠标时,如按钮、链接或者图片。它是用户与页面交互的主要方式之一,所以经常被用来响应用户的操作来改变页面的状态。 通过jQuery click事件,可以绑定事件处理程序到元素上,当元素被点击时,这些事件处理程序会被调用。jQuery提供了强大且易于使用的语法来选取HTML元素,并绑定click事件,只需传入一个回调函数即可完成绑定。例如: ``` $( "#btnSubmit" ).click(function() { alert("提交按钮被单击!"); }); ``` 以上代码监听了id为“btnSubmit”的按钮点击事件,并绑定了一个回调函数,在点击时会触发一个警告框弹出。通过click事件,我们可以实现各种不同的交互效果,比如展开/关闭、弹出/隐藏、滑动动画等等。 总之,jQuery click事件为开发者提供了一种简单而方便的方式,来处理元素的点击行为,提供了更丰富的交互效果来增强用户体验。 <h3>回答3:</h3><br/>jQuery的click事件是一种鼠标点击事件,可以被绑定到元素上。当用户单击元素时,就会触发该事件。 通过jQuery的click事件可以实现以下一些常见的用途: 1. 点击显示和隐藏元素。通过给元素绑定点击事件,可以用来控制显示和隐藏另一个元素。 2. 点击改变元素的样式。例如单击按钮时可改变按钮的背景色、字体颜色等样式。 3. 点击触发动画效果。例如单击菜单按钮时,会出现菜单区域并以动画效果展现。 4. 点击表格行实现交互效果。例如表格的行的颜色随鼠标的单击而改变或者点击后弹出对话框等用户交互的特效。 5. 点击跳转到某个链接。例如单击某个按钮,可以实现页面的跳转。 jQuery的click事件用法: 1. 绑定click事件 $(selector).click(function() { //处理事件的代码 }); 2. 触发click事件 $(selector).click(); 3. 解除click事件 $(selector).unbind('click'); 总之,jQuery的click事件是比较常用的一种鼠标事件,能够实现很多交互效果,可以满足用户不同的需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值