gpt4 book ai didi

javascript - 如何重置对象上的 one() 函数?

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

我有 6 个圆圈。我试图阻止我的用户按从左到右的 1-6 顺序单击 NOT

Ex:如果用户尚未点击第一个,则不应允许点击2nd3rd

我可以访问所有这些圈子的索引。

if(steps.indexOf(selector) != 0){
alert("Please start by selecting your device.");
return false;
}

由于我的圈子click使用one()绑定(bind),因此在他们点击一个事件后,它仅监听一次事件顺序错误,我的警报弹出,但是当我再次单击同一个圆圈时,由于使用 one() 函数绑定(bind)圆圈,因此不会再发生任何事情。

有没有办法重置 $(this) 对象上的 one() ,以便它再次监听事件?

$('.' + selector).on("click", function() {
...
});

如何重置对象上的 one() 函数 - jQuery?

最佳答案

不要添加一次性监听器,而是添加始终监听器,并使用业务逻辑解决您的问题。例如像这样的例子:

const $first = document.getElementById('first'),
$second = document.getElementById('second'),
$third = document.getElementById('third');


function makeOrderedClick() {
let currentStep = 0;
return index => {
if (index !== currentStep) {
alert("Please click step" + currentStep);
return;
}

currentStep++;
};
}

const orderedClick = makeOrderedClick();

$first.addEventListener('click', e => {
orderedClick(0);
})

$second.addEventListener('click', e => {
orderedClick(1);
})

$third.addEventListener('click', e => {
orderedClick(2);
})
<div id="app">
<button id="first">
First
</button>
<button id="second">
Second
</button>
<button id="third">
Third
</button>
</div>

关于javascript - 如何重置对象上的 one() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57612340/

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