我有一个问题,当从平板电脑切换到风景时,反之亦然,平板电脑不会重新执行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