jquery - SimpleModal 确认并继续原始 href

标签 jquery simplemodal confirm confirmation

我已经搜索过,但没有找到解决方案。希望我忽略了一些简单的事情。

我追求的是标准的 jquery 确认,a:

$('.confirm').click(function(){
    var answer = confirm('Delete '+jQuery(this).attr('title'));
    return answer // answer is a boolean
});    

但是,我想使用 SimpleModal 作为警报窗口。如果我做任何事情除了,如果在 SimpleModal 对话框中单击"is",尝试让原始 href 继续进行,我就可以让 SimpleModal 显示并工作。

目前的代码......

jQuery(function ($) {

$('.confirm').click(function (e) {
    e.preventDefault();
    confirm("", function () {
        //alert('yes');
        $('.confirm').trigger('click');
    });
});
});

function confirm(message, callback) {
$('#confirm').modal({
    closeHTML: "<a href='#' title='Close' class='modal-close'>x</a>",
    position: ["20%",],
    overlayId: 'please-wait',
    containerId: 'confirm-container', 
    onShow: function (dialog) {
        var modal = this;
        $('.message', dialog.data[0]).append('Delete '+$('a.confirm').attr('title'));

        // if the user clicks "yes"
        $('.yes', dialog.data[0]).click(function () {
            // call the callback
            if ($.isFunction(callback)) {
                callback.apply();
            }
            // close the dialog
            modal.close(); 
        });
    }
});
}

我还在确认功能中注释掉了一条警报。警报确实有效。但如何让浏览器继续原来的href呢?

谢谢!

最佳答案

首先,您需要修改点击处理程序以传递链接的 URL:

jQuery(function ($) {
    $('.confirm').click(function (e) {
        e.preventDefault();
        confirm($(this).prop("href"), "", function () {
            $('.confirm').trigger('click');
        });
    });
});

如果您使用的是 jQuery 1.6 或更低版本,请使用 $(this).attr("href") 而不是 .prop()

然后修改函数以使用该 url:

function confirm(url, message, callback) {
    $('#confirm').modal({
        closeHTML: "<a href='#' title='Close' class='modal-close'>x</a>",
        position: ["20%",],
        overlayId: 'please-wait',
        containerId: 'confirm-container', 
        onShow: function (dialog) {
            var modal = this;
            $('.message', dialog.data[0]).append('Delete '+$('a.confirm').attr('title'));

            // if the user clicks "yes"
            $('.yes', dialog.data[0]).click(function () {
                // call the callback
                if ($.isFunction(callback)) {
                    callback.apply();
                }
                // close the dialog
                modal.close(); 

                // transfer to the url:
                window.location.assign(url);
            });
        }
    });
}

关于jquery - SimpleModal 确认并继续原始 href,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8432629/

相关文章:

javascript - jQuery 深度克隆不是递归的

javascript - 在这种情况下,如何在 <head> 中添加 javascript 文件?

javascript - jQuery 插件 SimpleModal body onclick 关闭不工作

jquery - 单击简单模态中的链接以打开新的简单模态

javascript - 为动态创建的元素/JS/jQuery 添加唯一的类名

JQuery 插件 SimpleModal 不断重新打开动态加载的 iframe

asp.net - ASP.NET 按钮 OnClientClick 中的 jQuery 确认对话框

c# - c#中的条件确认框

Jquery UI 对话框代替 javascript 确认

javascript - 不显示 bool 值为 true 的帖子