トグルクラスが付いたボタンがあります。ボウワーサイズが1200px未満の場合にのみ有効です。リフレッシュ後に動作しますが、ウィンドウのサイズを変更すると、時にはうまく動作しないことがあります。パターンを見ることができません。私はdevのツールでは、要素がhiglighted(ので、hteスクリプトは何かをやっている)を参照してくださいが、私はクラスを切り替えるしないでください。 addClass/removeClassに変更しようとしましたが、結果は同じです。どのようにそれを動作させるためのアドバイスは、非常に高く評価されるだろう。jQueryを使用してブラウザの幅(サイズ変更)に基づいてcilckクラスを切り替えます
CodePen:http://codepen.io/miunik/pen/oLWOLY
HTML:
<ul class="level-1">
<li class="btn">1 level item
<ul class="level-2">
<li>2 level item</li>
<li>2 level item</li>
<li>2 level item</li>
<li>2 level item</li>
</ul>
</li>
</ul>
CSS
ul.level-2 {
display: none;
}
ul.level-2.open {
display: block;
}
のjQuery:
$(document).ready(function() {
function setNav() {
if (window.outerWidth < 1200) {
$('.btn').on({
click: function() {
$(this).children('.level-2').toggleClass('open');
}
});
}
}
setNav()
$(window).resize(function() {
setNav();
console.log(window.outerWidth);
});
});
を取得する場合
resize()
はopen
クラスをリセットするための迅速な応答をありがとうございました。残念ながら、それは解決策ではありません。私は "li"要素の特別なクラス名を与えて、イベントハンドラはそれだけにバインドし、同じ(予測不可能な)方法で反応します。時には時々トグルすることもありません。 – rkuboあなたは何を意味するのか分かりません。コードをJSFiddle https://jsfiddle.net/wu1unvek/に持ってきて、それは私の魅力のように機能します。どのようにあなたのために間違っていますか? –
こんにちはJoachim。私が録音したこのスクリーンキャストを見てください - それはすべてを説明します。私にとっては、それは奇妙な動作をしますが、それはjQueryの知識を超えています。 http://screencast-o-matic.com/watch/cDieQuiUA1 $(window).resize()のように思えますが、ここには問題があります。あなたは私にこの行動を避けるためのヒントを教えてもらえますか、私はそれを完全に感謝します。しかし、お時間をいただきありがとうございます。 – rkubo