使用 knockout.js 防止双击按钮

2024-04-24

禁用按钮以便 Knockout.js 不会发生双击的最佳方法是什么?我有一些用户快速点击导致多个 ajax 请求。我认为 knockout.js 可以通过多种方式处理这个问题,并希望看到一些替代方案。


使用信号量(旋转锁)。基本上,您计算一个元素已注册的点击次数,如果超过 1,则返回 false 并且不允许后续点击。可以使用超时功能来清除锁定,以便他们可以在 5 秒后再次点击。您可以修改示例http://knockoutjs.com/documentation/click-binding.html http://knockoutjs.com/documentation/click-binding.html

正如这里所见:

<div>
 You've clicked <span data-bind="text: numberOfClicks"></span> times
 <button data-bind="click: incrementClickCounter">Click me</button>
</div>

<script type="text/javascript">
 var viewModel = {
     numberOfClicks : ko.observable(0),
     incrementClickCounter : function() {
         var previousCount = this.numberOfClicks();
         this.numberOfClicks(previousCount + 1);
     }
 };
</script>

通过将嵌套函数内部的逻辑更改为

if( this.numberOfClicks() > 1 ){
 //TODO: Handle multiple clicks or simply return false
 // and perhaps implement a timeout which clears the lockout
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 knockout.js 防止双击按钮 的相关文章

随机推荐