一般に、私はJS生成要素にコードを添付することを知っていますが、toggle()
が関わっているときは、動作させることはできません。私のコードは次のとおりです。JS生成要素へのtoggle()コードのバインド
このコードは実行されません(ターゲットの要素をクリックすると、ここで指定されたコードは実行されません)。どうして?
一般に、私はJS生成要素にコードを添付することを知っていますが、toggle()
が関わっているときは、動作させることはできません。私のコードは次のとおりです。JS生成要素へのtoggle()コードのバインド
このコードは実行されません(ターゲットの要素をクリックすると、ここで指定されたコードは実行されません)。どうして?
デモをフォークしてコードを試してみることはできませんので、ここでは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);
});
完璧に、素晴らしい動作します:) – drake035
使用 'click'の代わりにトグル。 'toggle'のイベントリスナーはありません – TheUknown
ありがとうございます。私はその質問を編集した。しかしそれは問題ではない。 – drake035