在将平板电脑从纵向切换到横向时遇到问题,反之亦然,平板电脑不会重新执行 jQuery 代码。
这是场景:
<div class="links">
<ul class="hide">
<li></li>
</ul>
</div>
最初, ul 元素通过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 元素时,似乎这段代码从未执行过。有没有办法让浏览器在我每次切换方向时都执行代码?