所以我有几行代码:
$('td').click(function (e) {
var test = "....";
var test2 = "....";
var test3 = "....";
SuppressWarning(test, test2, test3);
});
function SuppressWarning(test, test2, test3)
{
var reason = prompt("Why are you suppressing this warning?");
if(reason != "")
{
//do something
}当系统运行时,它将在提示符处停止,除非用户进行交互,否则它不会继续到if语句。但是,我想定制警报框,所以我决定使用alertify.js。
因此,我现在得到了下面的代码:
$('td').click(function (e) {
var test = "....";
var test2 = "....";
var test3 = "....";
SuppressWarning(test, test2, test3);
});
function SuppressWarning(test, test2, test3)
{
var reason = alertify.prompt("Message", function (e, str) {
if (e) {
// user clicked "ok"
} else {
// user clicked "cancel"
}
}, "Default Value");
if(reason != "")
{
//do something
}我的问题是,当系统运行时,它不会在提示符下停止;它只会转到if语句,而不包括其他语句。为什么会这样呢?为什么它不停止在提示符,以便用户可以键入一些东西?我怎么才能解决这个问题?谢谢!
发布于 2014-09-24 18:43:18
prompt是浏览器的本机,并停止当前的代码流,就像警告框或确认一样。另一方面,警报没有。如果触发了警报,脚本就不会停止。
这就是为什么警报接受回调作为参数。function(e, str)是在用户按ok或cancel之后触发的。str参数是用户输入的内容。只要把你的状态移动到回调中:
alertify.prompt("Message", function (e, str) {
if (e) {
// user clicked "ok"
if(str != "")
{
//do something
}
} else {
// user clicked "cancel"
}
}, "Default Value");https://stackoverflow.com/questions/26024012
复制相似问题