新しいスライダメニューを作成しようとしていますが、Jqueryに問題があります。Jquery、以前に作成された属性を更新できません。
私はリンクを持っています。私がクリックすると.css( 'left'、-230)を使用しても問題ありませんが、.css( 'left'、0)のような別のリンクをクリックして逆にしたい場合は、は何も起こりません。
私はあなたには、いくつかのコードを示しています
// The open part "target.width()" = 230
$('.nav-item').on('click', function() {
if(0 < $(this).find('.navbar-nav__sub').length) {
var target = $('.navbar-nav');
target.css('left', -target.width());
}
});
// The close part
$('.navbar-nav__sub .go-back').on('click', function() {
console.log('HERE');
var target = $('.navbar-nav');
console.log(target);
console.log(target.css('left'));
target.css('left', 0);
console.log(target.css('left'));
console.log('END');
});
この問題では奇妙なことは、私は私のコンソールでこれをしたということです。
HERE
Object { 0: ul.navbar-nav.flex-column, length: 1, prevObject: […] }
-230px
0px
END
これは、コードの作業もあることが、私には思えます左側の属性は常に-230pxです。
誰かがアイデアを持っていますか?
ありがとうございます。
PS:私の問題の再現JSfiddleを尋ねたよう
https://jsfiddle.net/w7Lknsxg/
あなたはをクリックすると、「Menu01」色が赤に変わり、あなたはをクリックすると、「<は=」サブメニューで、あなたが実行中を持っていますコンソールでも色は変わらない。 クラスnavbar-navは新しいクラス "toto"を取得できますが、2番目のケースで削除しようとすると失われることはありません。
あなたがフィドルを作成することもできますので、我々はあなたがしている場合、CSSは、イベントがバブリングを行うには – JoshKisb
PROB何か属性を参照することができますしてくださいネストされた項目にイベントリスナーを配置します。内部の子供の上で 'event.stopPropagation();'を試してください – Quince