gpt4 book ai didi

javascript - 制作类似确认的功能

转载 作者:行者123 更新时间:2023-12-02 22:42:21 25 4
gpt4 key购买 nike

我正在尝试模拟javascript的确认功能。但这不起作用。我哪里出错了?

function func(){
$('body').on('click', '.true', function() {
return true;
});

$('body').on('click', '.false', function() {
return false;
});
}


function test(){
var r = func();

if(r==false){
alert('false');
return false;
}

alert('it works');
}

jsfiddle

最佳答案

confirm 暂停浏览器的代码执行,直到单击按钮。这就是为什么 confirm 可以同步返回并且表现得像常规函数。您无法从 JS 中停止浏览器的执行,因此这是完全不可能的(或者如果您这样做,用户将无法输入任何内容)。

但是,您可以创建并返回一个 promise (然后可以异步解决):

 function func(){
return new Promise((resolve, reject) => {
$('body').once('click', '.true', function() { // Only listen to *one* click instead of keeping this listener forever
resolve(true); // resolve the promise if clicked
});

$('body').once('click', '.false', function() {
resolve(false);
});
});
}

然后可以用作:

 async function test(){ // has to be async, so that the execution can be haltet
var r = await func(); // halts till click

if(!r) { // reads "if not r"
alert('false');
} else alert('it works');
}

test();

Read On

关于javascript - 制作类似确认的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58545167/

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