单击事件禁用,双击事件跳转

响应式网页设计:

  在移动端的时候,通常导航菜单是双击跳转页面,单击事件只显示二级列表。

  $("a").click(function() {
    if(限制条件) {
      if($(this).siblings("ul").length != 0) {
        return false; //有二级菜单禁用跳转
      }
    }
  });
  $("a").dblclick(function() {
    window.location.href = $(this).attr("href"); //双击跳转
  });

示例

<!DOCTYPE html>
<html>

<head>
<meta charset="UTF-8">
<title></title>
<style>
  .menu {
    display: none;
  }
</style>
</head>

<body>
<ul class="main-menu">
  <li>
    <a href="http://www.baidu.com">一级菜单</a>
    <ul class="menu">
      <li>
        <a href="http://www.weibo.com">二级菜单</a>
      </li>
    </ul>
  </li>
  <li>
    <a href="http://www.baidu.com">一级菜单</a>
  </li>
  <li>
    <a href="http://www.baidu.com">一级菜单</a>
  </li>
  <li>
    <a href="http://www.baidu.com">一级菜单</a>
  </li>
  <li>
    <a href="http://www.baidu.com">一级菜单</a>
    <ul class="menu">
      <li>
      <a href="http://www.weibo.com">二级菜单</a>
      </li>
    </ul>
  </li>

</ul>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script>
  $(function() {
    $(‘.main-menu‘).children("li").each(function() {
      $(this).find("a").hover(function() {
        $(this).siblings(".menu").show();
      }, function() {
        $(this).siblings(".menu").hide();
      });
    })

    $(‘.main-menu‘).children("li").each(function() {
      /*单击禁用*/
      $(this).children("a").click(function() {
        if($(window).width() <= 768) {
          if($(this).siblings(".menu").length != 0) {
            return false;
          }
        }
      });
      /*双击跳转*/
      $(this).children("a").dblclick(function() {
        window.location.href = $(this).attr("href");
      });
    });
  });
</script>
</body>

</html>

时间: 2024-10-08 21:22:45

单击事件禁用,双击事件跳转的相关文章

怎样使单击事件变为双击事件(50分)

即单击时并不产生单击事件,而双击时产生单击事件,这样不能在双击事件里调用单击事件,因单击事件优先于双击事件. 拦截单击的消息,改发双击的消息 能否举个例子!以DBgridclick()为例 TForm1 = class(TForm) procedure FormClick(Sender: TObject); procedure FormDblClick(Sender: TObject); procedure FormCreate(Sender: TObject); private { Priva

◆◆1OO ALV-单击事件,双击事件,添加自定义按钮事件(EVENT)实例

OO ALV中经常会用的行单击,行双击,application tool bar上添加按钮以及按钮的相应事件,如下: 1,单击:handle_hotspot_click 事件 2,双击:handle_double_click 3,工具栏上添加自定按钮: handle_toolbar,其中,butn_type = 3. 是分隔符详细参照下面代码 4, 自定义按钮相应事件:handle_command 这些事件需要用SET HANDLER先注册,然后再在类中实现,添加自己的逻辑. 下面是个完整代码以

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

本人需要给bootstrap-treeview的树节点添加双击事件.而该插件原生方法中不带双击事件功能.该插件的节点默认绑定的单击事件,由此引起了单击事件和双击事件的冲突. 编写测试代码 引起冲突的代码: 问题效果展示: 每一次触发双击事件都会引起两次单击事件 解决冲突的代码: 解决问题效果展示: 完美解决单击事件和双击事件冲突问题 这里主要用到两个HTML DOM Window对象中函数,settimeout(),clearTimeout() 我这里两个单击事件触发的时间间隔设置在等于300毫

双击事件失效解决办法

某些时候,双击事件会失效,模拟办法解决双击失效后,而同时我又不想在该元素上触发两次单击事件,解决办法如下: var dbclickTime={ prev:0, next:0//模拟触发双击};var clickConflict={//解决单击事件和双击事件的冲突 _timeout:null, set:function (fn) { this.clear(); this._timeout=window.setTimeout(fn,400); }, clear:function () { if(th

selenium键盘事件和鼠标事件

模拟鼠标事件 1.from selenium.webdriver.common.action_chains import ActionChains 2:ActionChains(driver):用于生成模拟用户行为 3:perform():执行存储行为 表达式 说明 context_click 右击事件 double_click 双击事件 drag_and_drop 拖动 move_to_element() 鼠标停在一个元素上 click_and_hold 按下鼠标左键在一个元素上 exampl

禁用CMFCRibbonApplicationButton的单击和双击事件

为了禁用CMFCRibbonApplicationButton的单击和双击事件,我重载了CMFCRibbonApplicationButton如下: 1. MyRibbonApplicationButton.h文件内容: #pragma once class CMyRibbonApplicationButton : public CMFCRibbonApplicationButton{public: CMyRibbonApplicationButton(); //~CMyRibbonApplic

javascript双击事件取消默认的两次单击事件

当一个元素同时具有单击和双击事件时,双击时会触发2次单击和1此双击事件. 双击会:先第1次单击 ,同时触发第2次和双击事件. <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; ch

Android 自定义View实现单击和双击事件

自定义View, 1. 自定义一个Runnable线程TouchEventCountThread ,  用来统计500ms内的点击次数 2. 在MyView中的 onTouchEvent 中调用 上面的线程 3. 自定义一个Handler, 在TouchEventHandler 中 处理 统计到的点击事件, 单击, 双击, 三击, 都可以处理 核心代码如下: public class MyView extends View { ...... // 统计500ms内的点击次数 TouchEvent

jquery处理单击和双击事件

今天做div点击时,需要用到同一div的单击和双击事件,出现问题如下 例子: Html <body> <div id="div_1">单击双击我</div> 事件执行次数:<input id="input_1" type="text" value="0" /> </body> js $(document).ready(function(){ var i = 0; $(

jsp页面单击 双击事件区分

点击事件的执行顺序: 单击(click):mousedown,mouseout,click: 双击(dblclick):mousedown,mouseout,click , mousedown,mouseout,click,dblclick: 在双击事件(dblclick),触发的两次单击事件(click)中,第一次的单击事件(click)会被屏蔽掉,但第二次不会.也就是说双击事件(dblclick)会返回一次单击事件(click)结果和一次双击事件(dblclick) 结果.而不是一次双击事件