我真的很纠结于下面的问题。
我正在使用jQueryMobile - SimpleDialog插件找到here
我想要创建一个全局实用函数,这样我就可以根据需要随时调用,如下所示:
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');
}我只想当用户点击Ok时,对话框页面消失并返回到前一页,即对话框的“X”按钮功能。
但是,每次调用该对话框时,它都会向堆栈添加一个向后移动。也就是说,如果它被调用了两次,当用户点击Ok时,移动应用程序将移动到上一页,并在it...two移动到后退之前的页面。
有什么建议吗?
谢谢。
发布于 2012-09-07 07:31:52
我想我找到了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函数重写了这段代码
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"');可能会修复原始代码。
我发现更多是不同的行为,因为close中的不同的行为
在本地浏览器和手机浏览器上的行为不同,我使用的useDialog是假的,当我把它放到手机浏览器上时,我得到了对话框。这是因为
第141行- jquery.mobile.simpledialog.js
if ( ( docWinWidth > 400 && !o.useDialogForceTrue ) || o.useDialogForceFalse || o.fullScreen ) { 如果你只输入useDialog为true不起作用,如果with大于400px,那么你应该输入useDialogForceTrue = true,你将在所有浏览器中看到对话框。有一点混乱,因为有5个变量影响显示对话模式(docWinWidth,useDialogForceTrue,useDialogForceFalse,fullScreen和useDialog)。这意味着如果您在移动浏览器中使用useDialog : false将始终显示对话框( docWinWidth > 400 && !o.useDialogForceTrue )。
然后我告诉ok想好了,但现在我想在这个对话框中重新加载不同的内容,然后我会关闭它,然后用不同的内容activedialog.simpledialog(‘close’)重新打开;
第213行- jquery.mobile.simpledialog.js
if ( self.options.cleanOnClose === true && self.options.useDialog === false ) {
self.clean();
}但是然后..。如果是对话框,则不能使用属性'cleanOnClose‘,也不能清除对话框内容
我所做的只是删除对is对话框的选中
if ( self.options.cleanOnClose === true) {
现在我正在重用一个对话框来显示不同的内容
建议使用simpledialog2这个版本解决了很多问题!
https://stackoverflow.com/questions/9068346
复制相似问题