弹出窗口似乎很奇怪,很难复制 - 转到下面的确切链接,然后单击所述“登录”按钮似乎可以保证行为。
http://demos.jquerymobile.com/1.3.2/widgets/popup/#&ui-state=dialog
我相信下面的解决方案可能与它解决了幻灯片转换的其他有趣问题有关。(仅通过弹出窗口进行有限测试)但看起来很有希望
用下面的代码片段覆盖有问题的函数。
您必须在加载 jquerymobile js 之前调用它
// Override of $.fn.animationComplete muse be called before initialise jquery mobile js
$(document).bind('mobileinit', function() {
$.fn.animationComplete = function(callback) {
if ($.support.cssTransitions) {
var superfy= "WebKitTransitionEvent" in window ? "webkitAnimationEnd" : "animationend";
return $(this).one(superfy, callback);
} else {
setTimeout(callback, 0);
return $(this);
}
};
})
背景:
jqueryMobile 1.3.2 实现了 jquery one() 事件处理程序附件有些不正确。
.one() - “将处理程序附加到元素的事件。每个事件类型每个元素最多执行一次处理程序。 ”:http ://api.jquery.com/category/events/ :本质上是事件触发和然后被删除。
但是,使用one()调用两者(“webkitAnimationEnd 和 animationend”) 可能意味着两个处理程序中只有 1 个(取决于浏览器)被触发,而另一个处理程序太逗留并可能导致内存泄漏。
Chrome43 同时处理 webkitAniationEnd 和 animationend - 但是在任何给定时间只有一个。这使得另一个在元素上的下一次动画发生时逗留并触发。