微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用jquery确认替换javascript确认

我使用以下代码来使用 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 举报,一经查实,本站将立刻删除。

相关推荐