gpt4 book ai didi

javascript - 在 window.confirm() 之前更改属性

转载 作者:行者123 更新时间:2023-12-01 01:44:32 25 4
gpt4 key购买 nike

下面是我的代码:

<a
@click="destroy"
:class="['button', { 'is-loading': deleting }]"
>
Delete
</a>

data: () => ({
deleting: false
}),
destroy () {
this.deleting = true

if (!confirm('Sure?') {
this.deleting = false
return
}
}

结果会显示一个模式对话框,并且this.deleting is not true :/

是否可以在对话框之前更改删除属性?

最佳答案

在出现确认对话框时,UI 似乎尚未更新。您可以使用 setTimeout(func, 0) 稍微延迟确认对话框,以确保 UI 已更新。

它应该类似于:

destroy () {
this.deleting = true

// Store reference to `this` for access during callback.
var self = this;

setTimeout(function() {
if (!confirm('Sure?') {
// self - refers to `this` in the outer context.
self.deleting = false
return
}
}, 0);
}

或者

destroy () {
this.deleting = true

setTimeout(() => {
if (!confirm('Sure?') {
this.deleting = false
return
}
}, 0);
}

requestAnimationFrame 也可能是一个不错的选择。

参见:How to tell when a dynamically created element has rendered

注意:我还没有对此进行测试,因为您的问题中没有 MCVE。

关于javascript - 在 window.confirm() 之前更改属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52072570/

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