Я думаю, что я нахожу, где проблема в rel close.
в файле jquery.mobile.simpledialog.js (строка 129)
if ( o.mode === 'blank' ) {
self.pickerContent.delegate('[rel="close"]', o.clickEvent, function() {
self.close();
alert('1');
});
}
Если вы включите оповещение и попробуете его в мобильном браузере (Android 2.3.3) при первом открытии и закрытии, вы получите одно оповещение, при открытии и закрытии звука вы получите два оповещения и так далее ...
Швы, в которых все события привязки по времени и никогда не отменяются (я использую переход, а не загрузка страницы, вероятно, при загрузке не произойдет)
Я не знаком с делегатами, и я переписал этот код с помощью функций jquery bind и unbind
if ( o.mode === 'blank' ) {
self.pickerContent.find('[rel="close"]').bind('click',function() {
self.close();
self.pickerContent.find('[rel="close"]').unbind();
});
/*
self.pickerContent.delegate('[rel="close"]', o.clickEvent, function() {
self.close();
});*/
}
Я тестировал в мобильном браузере и сейчас работает.
возможно self.pickerContent.undelegate ('[rel = "close"]'); исправит исходный код.
То, что я нахожу больше, - это другое поведение и из-за этого другого поведения при близком
Различное поведение в локальном и мобильном браузере. Я использовал useDialog, равный false, и когда я помещаю его в мобильный браузер, я получаю диалог. это потому что
из
строка 141 - jquery.mobile.simpledialog.js
if ( ( docWinWidth > 400 && !o.useDialogForceTrue ) || o.useDialogForceFalse || o.fullScreen ) {
, если вы просто используете useDialog, значение true не работает, если с больше 400px, тогда вы должны поставить useDialogForceTrue = true, и вы получите диалог во всех браузерах. Немного сбивает с толку, потому что есть 5 переменных, которые влияют на режим диалога показа (docWinWidth, useDialogForceTrue, useDialogForceFalse, fullScreen и useDialog). Это означает, что если вы используете useDialog: false в мобильном браузере всегда будет отображать диалоговое окно, потому что (docWinWidth> 400 &&! O.useDialogForceTrue).
Затем я сказал, что понял, но теперь я хочу перезагрузить другой контент в этом диалоговом окне, а затем я закрою его и снова открою с другим содержимым activedialog.simpledialog ('close');
строка 213 - jquery.mobile.simpledialog.js
if ( self.options.cleanOnClose === true && self.options.useDialog === false ) {
self.clean();
}
но тогда хммм ... если это диалог, вы не можете использовать свойство 'cleanOnClose', вы не можете очистить содержимое диалога
я просто убрал галочку для диалога
if (self.options.cleanOnClose === true) {
и теперь я снова использую диалоговое окно для отображения другого контента
Предложите использовать simpledialog2, в этой версии решено много проблем!