1

我在我的项目中使用 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'”。

有什么想法吗?

先感谢您。

4

0 回答 0