orientationchange事件无效

时间:2012-06-19 15:08:17

标签: jquery-mobile orientation screen-orientation

我正在尝试检测移动设备,iphone和ipads中的方向变化。

我使用以下代码:

 $(window).bind("orientationchange", function (event) {
    alert(event.orientation);

    position = $.event.special.orientationchange.orientation();

    event.preventDefault();
});

这里警报的值,即event.orientation显示为“未定义”,我在某些帖子中读到它确实支持检测方向。 同样在jquery文档中,它被编写为更好地使用“event.orientation”而不是“window.orientation”,但是这些都没有返回所需的结果都返回“undefined”。

所以我使用了“$ .event.special.orientationchange.orientation();”检测方向。

但我想使用jquery文档中定义的功能作为event.orientation。如link

同样在我的代码中,“$ .mobile.orientationChangeEnabled”设置为true,如上面的链接所示。

请为此建议任何可能的解决方案。

任何帮助都将不胜感激。

提前致谢。

5 个答案:

答案 0 :(得分:1)

老问题,但是万一其他人遇到它,你必须使用window.orientation,并用度数表示:

portrait: 0
portrait (upside down): 180 
landscape: (counterclockwise): 90
landscape: (clockwise): -90

答案 1 :(得分:0)

试试这个:

$(window).bind('orientationchange',function(){
    if(event.orientation == 'portrait'){
        alert('portrait');
    }
    else if(event.orientation == 'landscape') {
        alert('landscape');
    }
});

答案 2 :(得分:0)

$(window).on("orientationchange", function (event) {

答案 3 :(得分:0)

event.orientation并不总是设定。我有这个" undefined" IOS safari中的问题。相反,尝试使用window.orientation:

{{1}}

window.orientation可以是0或180(纵向模式),或90或-90(横向模式)

答案 4 :(得分:0)

我有同样的问题。以防万一有人遇到这个问题。 试试window.screen.orientation.type

jQuery( window ).on( "orientationchange", function( event ) {
    if(window.screen.orientation.type == 'landscape-primary')
    {

    }
    if(window.screen.orientation.type == 'portrait-primary')
    {

    }
});