当前位置:  开发笔记 > 编程语言 > 正文

如何创建自定义"确认"并暂停执行js直到用户单击按钮?

如何解决《如何创建自定义"确认"并暂停执行js直到用户单击按钮?》经验,为你挑选了2个好方法。

好吧,我正在做一堆RIA/AJAX的东西,需要创建一个"漂亮"的自定义确认框,这是一个DIV(不是内置的javascript确认).我无法确定如何完成暂停执行,以便在恢复或暂停执行之前让用户有机会接受或拒绝该条件.(取决于他们的答案)

所以这是我正在处理的逻辑的一般流程:

    用户从下拉列表中选择一个项目并单击按钮.

    在客户端javascript eventhandler for button中,我需要检查他们在下拉列表中选择的项目的条件(这是关键).

    这些条件可能导致根本没有显示任何确认,或者可能只有一些条件可能评估为真,这意味着我需要在继续之前要求用户接受或拒绝该条件.一次只能显示一个确认.

为了证明逻辑:

function buttonEventHandler() {

if (condition1) {
  if(!showConfirmForCondition1) // want execution to pause while waiting for user response.
     return; // discontinue execution
}

if (condition2) {
  if (!showConfirmForCondition2) // want execution to pause while waiting for user response.

     return; // discontinue execution
}

if (condition3) {
  if (!showConfirmForCondition3) // want execution to pause while waiting for user response.

     return; // discontinue execution
}

...  
}

如果有人之前已经处理过这个挑战并找到了解决方案,那么非常感谢帮助.作为一个注释,我也使用MS AjaxjQuery库,虽然我没有找到任何可能已经包含在这个问题的功能.



1> Marc Novakow..:

我不敢说以"确认"和"警告"对话框暂停它的方式暂停Javascript运行时是不可能的.要使用DIV执行此操作,您必须将代码分解为多个块,并在自定义确认框上使用事件处理程序调用下一部分代码.

已经有一些项目为Javascript带来了"延续"支持,例如Narrative Javascript,所以如果你真的热衷于让它在单个代码块中工作,你可以调查一下.



2> 小智..:

我这样做的方式:

    使用按钮创建自己的确认对话框,让我们说"是"和"否".

    比方说,创建触发对话框的功能confirmBox(text, callback).

    在"是"和"否"按钮上绑定事件 - "是" - callback(true),"否" - callback(false).

    当您调用该函数时,请使用以下语法:

    confirmBox("Are you sure", function(callback){
        if (callback) {
            // do something if user pressed yes
        } 
        else {
            // do something if user pressed no
        }
    });
    

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有