我想创建一个自定义确认框,如下所示
var should_I_move_forward = myconfirmbox();我的确认框将显示一个带有Yes/No按钮的弹出窗口,我想在这里暂停执行,直到用户点击yes或no,我该如何实现?
即与js confirm方法购买我自己的UI相同的功能。
发布于 2011-09-26 21:31:16
你不能这么做。
您必须将确认之后的逻辑移动到myconfirmbox方法中,或者将其作为参数传递(以按需调用)。
就像这样
function ConfirmYes(){
// do something for Yes
}
function ConfirmNo(){
// do something for No
}
function myconfirmbox(yesCallback, noCallback){
// whatever you currently do and at the end
if (confirmation == 'yes'){
yesCallback();
} else {
noCallback();
}
}
myconfirmbox(ConfirmYes, ConfirmNo);发布于 2011-10-21 05:30:00
我所做的一点都不优雅,但它对我来说很好!我创建了一个自定义确认函数,如下所示:
function jqConf(msg,y,n){
$('body').append('<div id="confirmBox">msg</div>');
$('#confirmBox').append('<div id="confirmButtons"></div>');
$('#confirmButtons').append('<button onclick="'+y+'();">Yes</button>');
$('#confirmButtons').append('<button onclick="'+n+'();">No</button>');
}
function defaultYes(){
alert('Awesomeness!');
}
function defaultNo(){
alert('No action taken!');
}我是这样使用它的:
<button onclick="jqConf('Do you love me?','defaultYes','defaultNo')">Confirm</button>这样,我将以字符串的形式传递要运行的函数的名称(如果是,如果不是),分别由user事件执行。
正如我所说,没有什么优雅的东西,但它是有效的!,没有循环或混乱的代码,我想?,在这个例子中,我使用了jQuery,但也可以用普通的JavaScript实现!
https://stackoverflow.com/questions/7555748
复制相似问题