gpt4 book ai didi

javascript - 如何重现 JavaScript 的 confirm() 函数提供的 "wait"功能?

转载 作者:行者123 更新时间:2023-11-30 06:06:55 25 4
gpt4 key购买 nike

我正在尝试编写一个自定义的窗口内确认对话框(基于 jQuery UI),我们可以使用它来控制窗口的所有方面(按钮文本等)。我真正想要的是控件的行为与内置 confirm() 函数的行为完全相同(调用 confirm(),脚本执行暂停,直到用户单击确定或取消,confirm() 返回 true 或 false) .我环顾四周寻找解决方案,我的关闭看起来像这样:

//title = text to be displayed for title
//text = text to be displayed in body of dialog
//func = name of function to be called upon user selection, result will be passed as first parameter
function aw_confirm(title, text, func){
<%= ClientID %>_retVal = null;
<%= ClientID %>_func = func;
<%= ClientID %>_show(title, text);
<%= ClientID %>_waitForSelection(func);
}

function <%= ClientID %>_waitForSelection(func){
if (<%= ClientID %>_retVal != null){
var r = <%= ClientID %>_retVal;
<%= ClientID %>_retVal = null;
func(r);
}
else setTimeout("<%= ClientID %>_waitForSelection(<%= ClientID %>_func)", 10);
}

这是一个 aspx 控件,因此 <%= ClientID %>_ 在所有内容之前,以确保没有人用其他控件中的代码覆盖函数。

如您所见,此当前设置要求程序员编写一个处理程序(此处称为 func),以便在用户进行选择时调用。我真正想要的是让 aw_confirm() 等到用户做出选择然后返回。有没有办法做到这一点?提前感谢您提供的任何帮助或建议!

最佳答案

Javascript 主要是基于事件的。代码对事件使用react(单击按钮、计时器等)。 JQuery UI 也遵循这种范式。你正在尝试的是反对这一点,因此即使可能也会非常困难。您应该遵循基于事件的方法。

它与使用 confirm 的代码没有太大区别。如果你有这个:

ret = confirm("Hello User")
// do something

你现在可以写了

aw_confirm("Hello user", "", function(ret){
// do something
})

使用匿名函数作为回调。

关于javascript - 如何重现 JavaScript 的 confirm() 函数提供的 "wait"功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3822118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com