我在我的项目中使用 jQuery Mobile 1.2.0,在尝试使对话框背景透明时遇到了这样的问题。我已经从如何删除 Jquery Mobile Dialog 的页面背景中的答案修改了脚本?到这个。
$(function() {
$('div[data-role="dialog"]').live('pagebeforeshow', function(e, ui) {
if( !$('[data-role="old-page"]').length ) {
$('[data-role="page"].ui-page-active')
.eq(0).clone()
.attr('data-role','old-page')
.appendTo('body')
.addClass('ui-dialog-background-hidden');
}
if ( !!$('[data-role="old-page"].ui-dialog-background-hidden').length ) {
$('[data-role="old-page"].ui-dialog-background-hidden')
.removeClass('ui-dialog-background-hidden')
.addClass("ui-dialog-background ");
}
});
$('div[data-role="dialog"]').live('pagehide', function(e, ui) {
console.log('pageBeforeHide');
console.log('old-page',$('[data-role="old-page"].ui-dialog-background'))
if (!$('.ui-dialog.ui-page-active').length) {
$('[data-role="old-page"].ui-dialog-background')
.removeClass('ui-dialog-background')
.addClass('ui-dialog-background-hidden')
.remove();
}
});
此脚本在打开对话框之前将页面版本保存到 DOM 中。
它“几乎”工作得很好,接受这样一个事实,在我转到另一个页面后,调用对话框然后关闭它,jQuery Mobile 在第 3379 行抛出错误“无法调用未定义的方法'_trigger'”。
有什么想法吗?
先感谢您。