我有一個問題,當從平板電腦切換到風景時,反之亦然,平板電腦不會重新執行jQuery代碼。平板電腦縱向/橫向切換不重新執行jQuery?
下面是這種情況:
<div class="links">
<ul class="hide">
<li></li>
</ul>
</div>
最初,UI元素通過CSS隱藏。然後我給這個代碼打開點擊事件。
if ($(window).width() <= 800) { // portrait orientation
$(".links").click(function() {
$(this).find('ul').slideToggle();
});
}
目前爲止效果很好。如果我沒有點擊任何東西,即使我不斷地來回切換,它仍然可以正常工作。問題出現在縱向時,我點擊元素打開它,然後再次單擊它關閉。
看來第二次點擊之後,ul
元素得到了額外的style="display:none"
(最初這是不存在的,因爲它是由CSS處理)。這就是當我切換回風景時,ul
元素被隱藏的原因。然後我試着給下面的代碼。
if ($(window).width() > 800) { // landscape orientation
if ($('.links ul').is(":hidden")) {
$('.links ul').css("display","block");
}
}
但是,似乎這個代碼從來沒有得到執行,只要我切換到橫向取向隱藏ul元素。是否有解決方法,以便每次切換方向時瀏覽器都會執行代碼?
你見過這個http://stackoverflow.com/a/13869089/562036? – Jianhong
謝謝,但這並不能解決問題。我的主要問題是如何在從縱向切換到橫向時改變內聯樣式,或者反之亦然(基於窗口寬度)。因爲看起來平板電腦只能執行CSS,而當窗口寬度發生變化時,不能使用JS。 – user2395853