小编典典

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

ajax

好的,我正在做很多RIA /
AJAX东西,需要创建一个DIV的“漂亮”自定义确认框(不是内置的JavaScript确认)。我在确定如何完成执行暂停方面遇到了麻烦,以便让用户有机会在继续执行或停止执行之前接受或拒绝条件。(取决于他们的答案)

因此,这是我正在处理的一般逻辑流程:

  1. 用户从下拉菜单中选择一个项目,然后单击按钮。
  2. 在按钮的客户端javascript事件处理程序中,我需要检查其在下拉列表中选择的项目的一系列条件(这是关键)。
  3. 这些条件可能导致根本不显示任何确认,或者可能只有某些条件可以评估为真,这意味着我需要在继续操作之前要求用户接受或拒绝该条件。一次只能显示一个确认。

演示逻辑:

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
库,尽管尚未发现针对此问题的功能中可能已经包含的任何功能。


阅读 216

收藏
2020-07-26

共1个答案

小编典典

恐怕要说的是,无法以与“确认”和“警报”对话框相同的方式来暂停Javascript运行时。要使用DIV进行此操作,您将必须将代码分成多个块,并在自定义确认框上使事件处理程序调用下一部分代码。

已经有一些项目将“延续”支持引入Javascript中,例如Narrative
Javascript,
因此,如果您真的很想将其在单个代码块中运行,可以进行研究。

2020-07-26