【发布时间】:2013-09-29 17:21:05
【问题描述】:
我的应用程序出现问题。我正在使用 cordova 和 jquery mobile 开发应用程序。 按照 jquery mobile master 上的代码,我发现了该代码
function openPopup(idPopup, onTimeout) {
var popupContent = '<div data-role="content" data-theme="a" style="border:0px;" class="ui-corner-bottom ui-content centerContent">' +
'<h3 class="ui-title" id="myTitle">Caricamento</h3>' +
'<img src="img/load_shop33sell.gif"/></div>';
var popup = '<div data-role="popup" id="popup-' + idPopup + '" data-overlay-theme="b" data-theme="a" class="ui-content">' + popupContent + '</div>';
$.mobile.activePage.append(popup).trigger("pagecreate");
$("#popup-" + idPopup).on({
popupbeforeposition: function () {
$('.ui-popup-screen').off();
}
});
var fallback = setTimeout(function () {
$("#popup-" + idPopup).popup("open");
}, 3000);
$("#popup-" + idPopup).popup("open");
clearTimeout(fallback);
callback = setTimeout(function () {
$("#popup-" + idPopup).popup('close');
if (onTimeout && typeof (onTimeout) === "function") {
onTimeout();
}
}, 20000);
}
使用此代码,我可以打开一个弹出窗口而无需包含
<div data-role="popup">..../<div>
在我创建的每个页面中。我只是修改了一些添加 popupbeforeposition 事件以通过单击背景使弹出窗口不可关闭。 好吧,它工作正常,但我遇到了问题。在我的第一页随机发生这种情况
似乎弹出窗口在获得正确位置之前打开。此外,我还有一个可滚动的第二页,而且我总是遇到这种情况。如果我尝试向上滚动到页面顶部,我有一半的屏幕是黑色的,如第一张图片所示。
可能是什么问题?
提前谢谢,对不起我的英语:)
【问题讨论】:
-
.trigger("create");就够了,不用打电话.trigger("pagecreate");。这可能无法解决问题,但只是一个注释:) -
这似乎部分解决了我的问题。现在#1截图中的情况不再发生,但在#2截图中仍然发生令人讨厌的想法。似乎背景只是在我正在查看的屏幕部分中还可以,如果我尝试向上或向下滚动屏幕的一半是黑色的......尝试锁定屏幕的滚动可能是一种解决方法解决这个问题?
-
还是有这个问题:(
-
打开弹窗时,尝试拨打
$.mobile.activePage.trigger('updatelayout');。 -
问题似乎是由给予弹出窗口的
data-overlay-theme="a"属性引起的..如果我删除它,背景会以一种很好的方式显示..顺便说一句,我需要解决这个问题黑色背景..还有其他方法可以代替弹出窗口上的data-overlay-theme="a"?
标签: android jquery jquery-mobile cordova popup