javascript - 使用 fancybox 扩展 Javascript 确认框

标签 javascript fancybox

我用这样的 fancybox 扩展了我所有的 alert

window.alert = function(message){
    $("#alert_message_box .warmsg span").html(message);
    $.fancybox({'href':'#alert_message_box'});
    return false;
}

并且工作正常。我也尝试扩展 confirm 框,比如

 window.confirm = function(message){
    $("#confirm_message_box .warmsg span").html(message);
    $.fancybox({'href':'#confirm_message_box'});
}

confirm_message_box div 包含两个按钮,YesNo

if(确认(alert_msg)){ 在这种情况下,将如何调用 confirm 函数以及如何将 truefalse 返回给被调用的函数

我不知道覆盖这些函数是否有任何问题。

这是一个带有 jquery 的 jsfiddle 演示(这里没有使用 fancybox)

http://jsfiddle.net/fzTa3/

最佳答案

在这种情况下,您将不得不更改您的工作流程,因为确认的 Fancybox 版本不是模态对话框(它不会暂停脚本执行)。您必须使用回调来调用相应的按钮点击:

window.confirm = function(message, onYes, onNo) {
    $("#confirm_message_box .warmsg span").html(message);
    $.fancybox({
        href: '#confirm_message_box'
        afterLoad: function() {
            this.inner.find('.btn-yes').click(onYes);
            this.inner.find('.btn-no').click(onNo);
        }
    });
}

您需要在 fancybox 初始化中将 onYes 函数绑定(bind)到 Yes 按钮,将 onNo 函数绑定(bind)到 No

用法是这样的:

confirm('Are you sure?', function() {
    // he is sure
}, function() {
    // cancel something
});

关于javascript - 使用 fancybox 扩展 Javascript 确认框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15378588/

相关文章:

javascript - 单击 3 次后禁用按钮

javascript - angular.js 中的 Hello World

jquery - 让 fancybox 和 hover remove 图标在同一张图片上工作

javascript - 如何渲染隐藏预设轨迹的绘图,即基于列表的 'legendonly'

javascript - Angular 5/6 : Handle File Download (w/Friendly File Name) from ASP. NET 核心 API HTTP

jquery - 单击复选框时阻止 Fancybox 弹出窗口

javascript - Fancybox 在页面加载开始在 IE 中无法工作?

python - selenium 切换到 iframe 来定位元素

javascript - 将 javascript 值添加到 Ruby Hash 中