我用这样的 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 包含两个按钮,Yes
和 No
。
if(确认(alert_msg)){
在这种情况下,将如何调用 confirm
函数以及如何将 true
和 false
返回给被调用的函数
我不知道覆盖这些函数是否有任何问题。
这是一个带有 jquery 的 jsfiddle 演示(这里没有使用 fancybox)
最佳答案
在这种情况下,您将不得不更改您的工作流程,因为确认的 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/