gpt4 book ai didi

javascript - 获取嵌套点击功能的结果

转载 作者:行者123 更新时间:2023-11-30 11:17:41 24 4
gpt4 key购买 nike

有没有可能是这样的:

$('#btna').click(function(){
console.log(abc());
})

function abc() {
$('#btnb').click(function(){
var result = false;
});
$('#btnc').click(function(){
var result = true;
});
return result;
}

所以点击btna 我需要等待,同时点击btnbbtnc 并将结果写入控制台。

有什么帮助吗?

最佳答案

其他方法,它使用 Promises , 除了第一个按钮 ($btna) 之外,这将以等待上一次点击的特定顺序运行

const $btna = document.getElementById('btna');
const $btnb = document.getElementById('btnb');
const $btnc = document.getElementById('btnc');


function executeListener(btn ){
return new Promise(function(resolve, reject) {
btn.addEventListener("click" , function(){
let jsonReturn = {
action : "click" ,
button : btn
}
resolve(jsonReturn)
});
})
}
executeListener($btna)
.then(function(btnaSuccess) {
console.log("click btna");
return executeListener($btnb)
}).then(function(btnbSuccess){
console.log("click btnb");
return executeListener($btnc);
}).then(function(btncSuccess){
console.log("click btnc")
console.log("Chispas");
})
<button id="btna">btna</button>
<button id="btnb">btnb</button>
<button id="btnc">btnc</button>

此外,您可以使用 Promise.all

const $btna = document.getElementById('btna');
const $btnb = document.getElementById('btnb');
const $btnc = document.getElementById('btnc');


function executeListener(btn ){
return new Promise(function(resolve, reject) {
btn.addEventListener("click" , function(){
let jsonReturn = {
action : "click" ,
button : btn
}
resolve(jsonReturn)
});
})
}
Promise.all([
executeListener($btna),
executeListener($btnb),
executeListener($btnc)])
.then(values => {
console.log("resolve all clicks");
console.log("Chispas")



});
<button id="btna">btna</button>
<button id="btnb">btnb</button>
<button id="btnc">btnc</button>

关于javascript - 获取嵌套点击功能的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50956943/

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