2014-12-13 104 views
0

很難理解這裏究竟發生了什麼。我有一個導航圖標的漢堡包,當用戶點擊圖標時,向該元素添加一個活動類。jQuery |刪除活動類

由於某些原因,我不能console.log當活動類是在元素?? ??我希望能夠做到這一點的原因是,如果用戶點擊漢堡包活動時返回到「非」活動狀態。

這裏是我的jQuery

var nav = $('.nav-toggle'), 
    activeNav = $('.nav-show'); 

nav.on("click", function(e){ 
    e.preventDefault(); 
    $(this).addClass('nav-show'); 
}); 

activeNav.on("click", function() { 
    console.log("clicked active nav"); 
}); 

JSFIDDLE DEMO

回答

1

嘗試絲毫這樣的:

var nav = $('.nav-toggle'); 

nav.on("click", function(e){ 
    e.preventDefault(); 
    var $this = $(this); 
    if ($this.hasClass('nav-show')) { 
     $(this).removeClass('nav-show'); 
     alert("asdas"); 
     console.log("clicked active nav"); 
    } else { 
     $(this).addClass('nav-show'); 
    } 

}); 

Code here

+0

Thanks for Ť他的男人 - 我曾想過如果發表聲明,只是不理解選擇器問題。謝謝! – Filth 2014-12-13 00:45:38

2

這是因爲綁定已經在當你聲明的變量,當您更改類,你不會再哪一個是活動的設置應用綁定。只要綁定到包裝元素和委託的事件,而不是:

變化activeNav.on("click", function() {

$('.some-static-container-div').on('click', '.nav-show', function() {...

+0

作爲一個輕微的修改:'$ ('.nav-show,.nav-toggle')。parent()。on('click','.nav-show,.nav-toggle',function(){...});' – 2014-12-13 00:40:31