【问题标题】:JQuery mobile popup $.mobile.changePage Bug?JQuery 移动弹出窗口 $.mobile.changePage 错误?
【发布时间】:2013-01-04 03:59:58
【问题描述】:

弹出窗口似乎真的有问题(未准备好发布)。如果关闭弹出窗口关闭事件(正如它应该做的那样),它将触发......但是当您切换到另一个页面(多页面布局)时也会触发。这根本不应该发生。因为您可能从未打开过弹出窗口...但是当您切换页面时仍然会触发关闭事件(他们怎么会错过那个?)。

此外,从弹出窗口的关闭事件中,我尝试使用 $.mobile.changePage(../schedule.html); 返回上一页;但是如果我在弹出窗口的关闭事件中这样做,就会发生非常奇怪的事情。所以这段代码:

$( "#somepage #popupstatus" ).bind({
    popupafterclose: function(event, ui) 
    {
        console.log('closing popup');
        if (isPopupVisible)
        {
            isPopupVisible=false;
            //do stuff
            $.mobile.changePage('../schedule.html');
        }       
    }
});

会让你跳回上一页...然后它会再次跳到这个页面。 为什么?这是另一个错误吗?有其他人遇到过这个问题吗?

【问题讨论】:

    标签: jquery mobile popup


    【解决方案1】:

    我遇到了类似的问题,我在弹出窗口中有一个确认按钮。我想我需要在更改页面之前关闭弹出窗口。显然,只需更改页面也会关闭弹出窗口。我来自:

    $('#confirm_status').popup('close');
    self.loadWorkOrders();
    $.mobile.changePage('#work_orders');
    

    到:

    self.loadWorkOrders();
    $.mobile.changePage('#work_orders');
    

    现在它可以正常工作了。

    【讨论】:

    • 遇到了同样的问题,删除了 .popup("close") 方法,它开始工作了!
    【解决方案2】:

    我遇到了类似的问题。

    页面 1(列表页面)转换到页面 2(详细页面),在用户单击按钮并成功完成 Ajax-POST 后打开弹出窗口。关闭弹出窗口时,将发出 changePage to Page 1。这会导致在再次转到第 2 页时触发 popupafterclose 事件。

    在所述事件中使用简单的布尔检查来防止这种情况(在发出 POST 时设置为 true,在打开弹出窗口时设置为 false)会导致其他奇怪的行为 - 从第 1 页到第 2 页的初始转换几乎总是重新- 执行,因此用户总是会看到两个转换:在弹出窗口关闭后预期的到第 1 页的转换,之后直接从第 1 页到第 2 页的转换。

    此时我只是放弃了,我将尝试使用对话框而不是弹出窗口。

    【讨论】:

    • 我想出了一个解决方法。如您所说,使用布尔值。我的被​​称为“isPopupVisible。如果它是真的,那么使用一个短的超时(1毫秒)并返回到上一页。它可以工作,直到修复为止。
    猜你喜欢
    • 1970-01-01
    • 2013-07-03
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 2015-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多