首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在自定义确认框中暂停执行

问在自定义确认框中暂停执行
EN

Stack Overflow用户
提问于 2011-09-26 21:23:26
回答 2查看 1.8K关注 0票数 3

我想创建一个自定义确认框,如下所示

代码语言:javascript
复制
var should_I_move_forward = myconfirmbox();

我的确认框将显示一个带有Yes/No按钮的弹出窗口,我想在这里暂停执行,直到用户点击yes或no,我该如何实现?

即与js confirm方法购买我自己的UI相同的功能。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-26 21:31:16

你不能这么做。

您必须将确认之后的逻辑移动到myconfirmbox方法中,或者将其作为参数传递(以按需调用)。

就像这样

代码语言:javascript
复制
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);
票数 2
EN

Stack Overflow用户

发布于 2011-10-21 05:30:00

我所做的一点都不优雅,但它对我来说很好!我创建了一个自定义确认函数,如下所示:

代码语言:javascript
复制
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!');
}

我是这样使用它的:

代码语言:javascript
复制
<button onclick="jqConf('Do you love me?','defaultYes','defaultNo')">Confirm</button>

这样,我将以字符串的形式传递要运行的函数的名称(如果是,如果不是),分别由user事件执行。

正如我所说,没有什么优雅的东西,但它是有效的!,没有循环或混乱的代码,我想?,在这个例子中,我使用了jQuery,但也可以用普通的JavaScript实现!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7555748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档