2016-10-10 139 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

。結果保持不變...但我只是想用#代替當前標籤的鏈接,你能幫我嗎? 原因我認爲它不起作用,因爲我從標籤中刪除了屬性元素。 –