Jquery plugins jQueryMobile-SimpleDialog fullHTML rel=&x27;关闭';多次向后移动

Jquery plugins jQueryMobile-SimpleDialog fullHTML rel=&x27;关闭';多次向后移动,jquery-plugins,jquery-mobile,Jquery Plugins,Jquery Mobile,我真的在努力解决以下问题 我正在使用jQueryMobile-SimpleDialog插件,发现: 我想创建一个全局实用程序函数,这样我可以根据需要随时调用,就像这样: function popAlert(title, msg) { $(this).simpledialog({ 'mode' : 'blank', 'prompt' : title, 'cleanOnClose' : true, 'useModal':true,

我真的在努力解决以下问题

我正在使用jQueryMobile-SimpleDialog插件,发现:

我想创建一个全局实用程序函数,这样我可以根据需要随时调用,就像这样:

function popAlert(title, msg) {
    $(this).simpledialog({
       'mode' : 'blank',
       'prompt' : title,
       'cleanOnClose' : true,
       'useModal':true,
       'fullHTML': msg + '<a rel="close" data-role="button" data-theme="c">Ok</a>'
        })
     $(this).simpledialog('refresh');
}
函数popAlert(标题,msg){
$(此).simpledialog({
“模式”:“空白”,
“提示”:标题,
“cleanOnClose”:没错,
“useModal”:正确,
'fullHTML':消息+'Ok'
})
$(this.simpledialog('refresh');
}
我只想当用户点击Ok时,对话框页面消失并返回到上一页,如对话框的“X”按钮功能

但是,每次调用该对话框时,它都会向堆栈中添加一个后移。也就是说,如果它被调用了两次,当用户点击Ok时,移动应用程序将移动到上一页,前一页…两页向后移动

有什么建议吗


谢谢

我也有同样的问题。修复-我使用的不是
rel='close'

onclick="$('#simpledialog').simpledialog('close');"

这个积极的回答在电话上不起作用。我尝试了另一件事,但如果你有模态窗口,如果你没有固定的页脚菜单(因为菜单插件在android 2.3上不再固定),它就可以工作了


只需单击窗口的外侧。

我想我找到了rel close中的问题所在

在jquery.mobile.simpledialog.js文件中(第129行)

如果你在手机浏览器(android 2.3.3)中第一次打开和关闭时发出警报并尝试,你会收到一个警报,第二次打开和关闭时会收到两个警报,以此类推

所有时间绑定事件且从不解除绑定的接缝(Im使用转换不加载页面可能不会发生加载)

我不熟悉委托,我用bind和unbind jquery函数重写了这段代码

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”]');将修复原始代码

我发现更多的是不同的行为,因为这种不同的行为密切相关

在localy和移动浏览器上的不同行为,我使用的useDialog是false,当我把它放在移动浏览器中时,我得到了对话框。这是becouse 的

第141行-jquery.mobile.simpledialog.js

if ( ( docWinWidth > 400 && !o.useDialogForceTrue ) || o.useDialogForceFalse || o.fullScreen ) { 
if ( self.options.cleanOnClose === true && self.options.useDialog === false ) {
    self.clean();
}
如果您将仅useDialog设置为true不起作用,如果with大于400px,则应将useDialogForceTrue设置为true,然后您将在所有浏览器中获得对话框。有点混乱,因为有5个变量会影响显示对话框模式(docWinWidth、useDialogForceTrue、useDialogForceFalse、fullScreen和useDialog)。这意味着如果在移动浏览器中使用useDialog:false,将始终显示dialog becouse(docWinWidth>400&&!o.useDialogForceTrue)

然后我告诉ok,但现在我想在这个对话框中重新加载不同的内容,然后我将关闭它,然后用不同的内容重新打开activedialog.simpledialog('close')

第213行-jquery.mobile.simpledialog.js

if ( ( docWinWidth > 400 && !o.useDialogForceTrue ) || o.useDialogForceFalse || o.fullScreen ) { 
if ( self.options.cleanOnClose === true && self.options.useDialog === false ) {
    self.clean();
}
但是,嗯。。。如果是对话框,则无法使用属性“cleanOnClose”,则无法清理对话框的内容

我所做的只是删除对is对话框的检查

if(self.options.cleanOnClose==true){

现在我重复使用一个对话框来显示不同的内容

建议使用simpledialog2此版本解决了许多问题!