javascript android window.onorientationchange 连续触发

标签 javascript jquery android mobile

我正在尝试检测移动设备上的方向变化并在完成方向后触发一个函数,但该函数中的代码在 Android 中不断触发,我不确定为什么。这是我的代码:

var supportsOrientationChange = "onorientationchange" in window;
var orientationEvent = supportsOrientationChange ? "orientationchange" : "resize";

window.addEventListener(orientationEvent, 
   function() { alert ('orientation changed'); }, 
   false
);

有谁知道如何编写它以便在方向更改完成后只触发一次?

最佳答案

我在我的应用程序中使用了解决方法。我为 orientationchange 添加了一个事件监听器,然后设置了一个超时,这样 orientationchange 就可以发生,我可以获得一个新的宽度值,该值实际上反射(reflect)了方向更改后的宽度。

var device_width = 0;
$(document).ready(function () {
    var oc_timer;
    $(window).bind('orientationchange', function () {
        clearTimeout(oc_timer);
        oc_timer = setTimeout(function () {
            device_width = $(window).width();
        }, 500);
    });
});

我不确定这会解决您的持续触发功能问题,但这是我发现的有效解决方案。

关于javascript android window.onorientationchange 连续触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7166127/

相关文章:

android - 无法将 Fragments 与 Android 兼容包一起使用

Android 使用 org.apache.http.legacy 设置 cookie

javascript - 触发按钮点击其他元素

javascript - 为页面链接使用 url 参数

javascript - 在没有过滤的页面上进行 mixitup 过滤时出错

javascript - 如何通过更改菜单上的图像来突出显示当前页面?

javascript - 更改可拖动属性

javascript - 在页面上向下滚动时如何调整图像大小?

jquery - 如何防止事件被多次绑定(bind)

android - 如何将文件转换为 byte[] 数组以通过 Android 中的蓝牙套接字发送?