2017-04-12 1 views
0

一般に、私はJS生成要素にコードを添付することを知っていますが、toggle()が関わっているときは、動作させることはできません。私のコードは次のとおりです。JS生成要素へのtoggle()コードのバインド

このコードは実行されません(ターゲットの要素をクリックすると、ここで指定されたコードは実行されません)。どうして?

+2

使用 'click'の代わりにトグル。 'toggle'のイベントリスナーはありません – TheUknown

+0

ありがとうございます。私はその質問を編集した。しかしそれは問題ではない。 – drake035

答えて

0

デモをフォークしてコードを試してみることはできませんので、ここでは2セントとうまくいけばコードスニペットがあります。

私の知る限り、jQuery .onには1つのコールバックしかありませんが、これは問題です。

これを解決する方法:要素をクリックするたびに、サブメニューの表示を確認し、それに応じて切り替えます。

JS

$('body').on('click', '.header_mobile_menu .menu-item-has-children a', function(e) { 

    e.preventDefault(); 

    var $subMenu = $(this).siblings('.sub-menu'); 
    var visible = $subMenu.is(':visible'); 

    if(visible) $subMenu.fadeOut(0); 
    else $subMenu.fadeIn(0); 

}); 
+0

完璧に、素晴らしい動作します:) – drake035

関連する問題