jquery单击无法正常工作

时间:2016-10-10 08:19:54

标签: javascript jquery

我设法删除了列表项的属性元素但是我正在努力做以下事情:当我单击列表项时,它应该添加一个名为important的类,否则,该类必须不存在。

我使用jQuery尝试了这个:

$(document).ready(function (){                  
  var origHref = $('ul#primary-menu > li.menu-item-has-children > a').attr('href');  
//alert(origHref);
  var clicks = 0;
  $('ul#primary-menu > li.menu-item-has-children > a').removeAttr("href").data("origHref",origHref);
  $('ul#primary-menu > li.menu-item-has-children').click(function(){
     clicks++;
     if(clicks === 1){
       $('ul#primary-menu > li.menu-item-has-children').addClass('important');
     }
     else if(clicks > 1){
       alert("you clicked twice");
     }
  });       
});

问题:当我第一次检查元素并单击列表时,没有任何反应。只有当我第二次点击该类时才会添加。

注意:我只想为移动设备做这件事,所以不必担心超过800像素的屏幕。

请帮忙。

1 个答案:

答案 0 :(得分:2)

基于类而不是全局变量执行if,阻止默认单击事件:

  $('ul#primary-menu > li.menu-item-has-children').click(function(e) {
  if ($(window).width() < 800) {
    if (!$(e.target).closest('ul').is('.sub-menu')) {
      e.preventDefault();
      if (!$(this).hasClass('important')) {
        $(this).addClass('important')
          //toggle the menu 
      } else {
        //redirect if second click 
        window.location = $(this).find('a').attr('href');
      }
    }
  }
});