プロジェクトで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 行目で「undefined のメソッド '_trigger' を呼び出せません」というエラーをスローします。
何かご意見は?
前もって感謝します。