gpt4 book ai didi

javascript - 删除按钮单击事件直到最后一个重置事件不起作用

转载 作者:行者123 更新时间:2023-12-03 06:05:36 25 4
gpt4 key购买 nike

使用cycle.js和xstream,我想计算按钮点击次数并重置它们。

我计划通过计算上次重置后的所有按钮点击次数来实现此目的。为此,我想到放弃所有按钮点击,直到最后一次重置,然后计算剩下的内容。

但是我还有 2 个按钮不起作用

有什么建议吗?

function main(sources: ISources): ISinks {
const dom = sources.dom;
const resetClick$ = dom.select("#resetButton")
.events("click")
.map(ev => 0)
.startWith(0)

const button1Click$ = dom.select("#button1")
.events("click")
.compose(dropUntil(resetClick$.last()))
.map(ev => 1)
.fold((acc, n) => acc + n, 0)
.startWith(0)

const button2Click$ = dom.select("#button2")
.events("click")
.compose(dropUntil(resetClick$.last()))
.map(ev => 1)
.fold((acc, n) => acc + n, 0)
.startWith(0)

const vtree$ = Stream.combine(button1Click$, button2Click$)
.map(n =>
div([
input("#button1", { attrs: { type: "button", value: "Click Me!"}}),
input("#button2", { attrs: { type: "button", value: "Click Me!"}}),
input("#resetButton", { attrs: { type: "button", value: "Reset!"}}),
p(["Clicks: " + n[0] + " + " + n[1]]),
p(["Click total: " + (n[0] + n[1])])
])
)

const sinks: ISinks = {
dom: vtree$
};
return sinks;
}

最佳答案

const resetClick$ = dom.select("#resetButton")
.events("click")
.map(ev => 0)

const button1Click$ = dom.select("#button2")
.events("click")
.map(ev => 1)

const button1WithReset$ = Stream.merge(button1Click, resetClick$)
.fold((acc, n) => {
if (n == 0) return 0
else return acc + n
}, 0)

这应该可以解决问题。然后,您可以对 button2Click 执行相同的操作。

通过合并 button1click$resetClick$ 我们得到一个流,它发出 01。使用折叠,我们可以在每次合并流发出 0 时重置计数器。

关于javascript - 删除按钮单击事件直到最后一个重置事件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39566618/

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