2017-02-02 36 views
-2

我希望當我點擊「nav-toggle」時,它將切換類「open」添加到「grappa」。然後,我想刪除網頁上任意位置的切換類「打開」。在Jquery函數之前的另一個動作

我寫了這個,但它不工作。

$(function() { 
     $('.nav-toggle').on('click', function(){ 
      $('.grappa').toggleClass('open');{ 
       $(document).click(function() { 
       $('.grappa').toggleClass('close'); 
      }); 
      } 
     }); 

    }); 
+0

請解釋預期的完整行爲並提供示例html結構。請參閱[mcve] – charlietfl

+0

爲什麼要嵌套第二次點擊? – sohel101091

+0

有問題?給一些更多的細節 – Peru

回答

0

寫獨立的事件

來切換

$('.nav-toggle').on('click', function(){ 
     $('.grappa').toggleClass('open'); 
    }); 

任何地方的網頁點擊

$(document.body).click(function() { 
    $('.grappa').toggleClass('close'); 
}); 

保持警覺/控制檯陳述你的腳本越來越called.Referencing JS在你的網頁應該是正確的

更新

看看這個小提琴http://jsfiddle.net/M4teA/

+0

通過這種方式,它不起作用,因爲.nav-toggle在主體中,並在那裏單擊執行兩個功能。我認爲解決方案是在第一次 –

+0

添加小提琴後點擊.nav-toggle之後才啓用第二個功能。可以幫助你的情況 – Peru

0

你可以檢查您的grappa元素有撥動close上課前open類。然後close類將只會切換如果open已被切換。喜歡的東西:

$(function() { 
    $('.nav-toggle').on('click', function(){ 
     $('.grappa').toggleClass('open'); 
    }); 

    $(document).click(function() { 
     if ($('.grappa').hasClass('open')) 
     { 
      $('.grappa').toggleClass('close'); 
     } 
    }); 

}); 

而且,因爲我還沒有看到任何你的CSS或HTML的,我不清楚自己是如何使用openclose類,但看來,它可能會更有意義,只是根據元素是否具有該類,添加並刪除open類。例如:

$(document).click(function() { 
    if ($('.grappa').hasClass('open')) 
    { 
      $('.grappa').removeClass('open'); 
    } 
}); 
相關問題