2016-10-10 161 views
0

我设法删除列表项的属性元素,但我努力做到以下几点:当我点击一个列表项时,它应该添加一个名为important的类,否则,类必须不存在。jquery单击无法正常工作

我尝试这样使用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"); 
    } 
    });  
}); 

问题:当我检查的元素并单击列表中的第一次,没有什么happens.Only当我点击这个类增加了第二次。

注意:我只想为移动设备执行此操作,因此无需担心屏幕宽度超过800像素。

请帮忙。

+0

不需要检查的条件,就可以直接使用'.addClass(“重要”)'如果类不在那里会被添加,否则被忽略。还要注意'$('ul#primary-menu> li.menu-item-has-children')。addClass('important')'将类添加到所有'li'元素,__你的问题究竟是什么?__ – Satpal

+0

你可以尝试element.oneclick – AhbapAldirmaz

+0

@Satpal。我想添加一个重要的类,当我第一次点击列表项时,为了显示子项目元素,当我第二次点击时,它应该指引我到另一个页面。 你可以基于上周发布的这个问题回答: http://stackoverflow.com/questions/39911486/how-to-prevent-a-link-action-on-a-first-click-and-allowing-second -click-only-usi/39912241?noredirect = 1#comment67114948_39912241 –

回答

2

做一个如果基于类不是一个全局变量,防止默认点击事件:

$('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'); 
     } 
    } 
    } 
}); 
+0

madalin ivascu.The重要的必须添加只有当我点击李(第一次) –

+0

是的,这是你想要的 – madalinivascu

+0

。结果保持不变...但我只是想用#代替当前标签的链接,你能帮我吗? 原因我认为它不起作用,因为我从标签中删除了属性元素。 –