我使用以下代码来使用
jquery ui对话的默认
javascript确认.
jQuery.extend({ confirm: function(message,title,okAction) { jQuery("<div></div>").dialog({ // Remove the closing 'X' from the dialog open: function(event,ui) { jQuery(".ui-dialog-titlebar-close").hide(); },buttons: { "Ok": function() { jQuery(this).dialog("close"); return true; },"Cancel": function() { jQuery(this).dialog("close"); return false; } },close: function(event,ui) { jQuery(this).remove(); },resizable: false,title: title,modal: true }).text(message); } }); jQuery.confirm( "logout","Do you want to log out",function() { });
现在我需要在注销操作中使用相同的代码.这样我就可以在代码中替换javascript确认.
<a class="homeImage" onclick="return confirm('Do you want to logout?');" href="/future/myhome/head?$event=logout">LOG OUT</a>
我现在面临的问题是,当我用另一个函数替换确认并等待其返回值来做出决定时,对话框不会将值返回给变量.这两个函数同时执行(它显示警报,但它也被定向到href目标).有没有办法让该方法返回true或false值,从而进入href目标.
参考:jQuery Extend,jQuery UI Replacement for alert
相关问题:js override confirm
解决方法
问题是默认确认对话框是同步并阻止整个浏览器UI. JQuery对话框是异步的,不会阻止UI(因为它需要渲染).
所以问题的答案如下.你需要改变:
buttons: { "Ok": function() { window.location = "/future/myhome/head?$event=logout" },
和
<a class="homeImage" onclick="return jQuery.confirm('Do you want to logout?');return false;" href="/future/myhome/head?$event=logout">LOG OUT</a>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。