Jquery plugins jQueryMobile-SimpleDialog fullHTML rel=&x27;关闭';多次向后移动
我真的在努力解决以下问题 我正在使用jQueryMobile-SimpleDialog插件,发现: 我想创建一个全局实用程序函数,这样我可以根据需要随时调用,就像这样: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,
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此版本解决了许多问题!