我有一個帶切換類的按鈕 - 只有當調整大小低於1200px時才能使用。它在刷新後工作,但不知何故,當我調整它有時工作的窗口的大小,有時不 - 看不到模式。我在開發工具上看到元素被加亮(所以腳本正在做某事),但我沒有切換類。試圖將其更改爲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);
});
});
感謝您的快速反應。不幸的是,它不可能是解決方案。我給了「li」元素特殊的類名,以便事件處理程序僅綁定到它,它仍然以相同(不可預知)的方式作出反應 - 有時切換有時不會。 – rkubo
不知道你的意思。我將代碼放入JSFiddle https://jsfiddle.net/wu1unvek/中,它對我來說就像一個魅力。你怎麼會出問題? –
嗨Joachim。看看我錄製的這個截屏視頻 - 它解釋了一切。對我來說,它的表現很奇怪 - 但它超出了我對jQuery的認識。 http://screencast-o-matic.com/watch/cDieQuiUA1看起來像$(window).resize()在這裏是一個問題 - 你是說有另一種方式做它。你能否給我一個關於如何避免這種行爲的提示,我會非常感激。但是,非常感謝您的時間。 – rkubo