我试图检测移动设备上的方向变化,并在方向完成后触发功能,但功能内的代码在
Android中不断触发,我不知道为什么.这是我的代码:
var supportsOrientationChange = "onorientationchange" in window; var orientationEvent = supportsOrientationChange ? "orientationchange" : "resize"; window.addEventListener(orientationEvent,function() { alert ('orientation changed'); },false );
有没有人知道如何写这个,以便它只在方向改变完成后触发一次?
解决方法
我在我的应用程序中使用了解决方法.我为orientationchange添加了一个事件监听器,然后设置了一个超时,这样就可以进行方向转换,我可以得到一个新的宽度值,它实际上反映了方向改变后的宽度.
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); }); });