2017-02-02 2 views
-2

"nav-toggle"をクリックすると、 "grappa"にトグルクラス "open"が追加されます。次に、Webページのどこかをクリックして、「開く」トグルクラスを削除したいと思います。Jquery関数内での別のアクション

私はこれを書いていますが、動作しません。

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

    }); 
+0

サンプルのHTML構造を提供してください。 [mcve] – charlietfl

+0

を参照してください。なぜ2回目のクリックを入れ子にしていますか? – sohel101091

+0

質問ですか?いくつかの詳細を与える – Peru

答えて

0

スクリプトにアラート/コンソール文をキープ

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

任意の場所のWebページをクリックしたときに、

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

を切り替えるには、別のイベント

を書くcalled.Referencing JSを取得していますあなたのウェブページの内容は正しいはずです

はあなたのgrappa要素がcloseクラスをトグルする前にopenクラスを持っている場合は、チェックすることができ、このフィドルhttp://jsfiddle.net/M4teA/

+0

.nav-toggleが本体にあり、そこをクリックすると両方の機能が実行されるため、この方法では動作しません。私は解決策は、最初に –

+0

がフィドルを追加した.navトグルがクリックされた後にのみ2番目の機能を有効にすることだと思います。あなたのケースを助けるかもしれない – Peru

0

ルックを更新しました。その後、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'); 
    } 
}); 
関連する問題