是解决按钮点击太快的最佳常用方法
Is a best common way to solve button click too fast?
我有一个按钮。点击按钮时,显示一个选择数据的对话框。
如果快速点击按钮,将显示多个对话框。
目前,我有两种方法来解决这个问题
1.使用禁用
2.使用setTimeout和clearTimeout
非常感谢
解释:
如果使用禁用,对话框关闭后,需要设置按钮可用。
目前,我使用这个代码
Util.prototype.lazyTriggerEvent = function(buttonId,event,callback){
var searchTrigger=null;
$("#"+buttonId).bind(event,function(){
var text = $.trim($(this).val());
clearTimeout(searchTrigger);
searchTrigger = setTimeout(function(){
callback(text);
},500);
})
};
//Util.lazyTriggerEvent("showDialgBtnId","click",function(){})
如果点击按钮触发ajax,并且有更多这样的按钮,是解决这个问题的最佳通用方法。
你可以使用jquery的.one()
处理器来限制一个函数只运行一次:
描述:为元素的事件附加一个处理程序。的对于每个事件类型的每个元素,处理器最多执行一次。
$('button').one('click', function() {
// Do stuff
});
或者你也可以禁用按钮点击:
$('button').click(function() {
$(this).prop('disabled', true);
// Do stuff
});
要重新启用按钮,只需在close modal函数中添加以下代码:
$('button').prop('disabled', false);
我想当您想要显示对话时,您应该执行一个名为showDialogue()
的函数。
在您的showDialogue()
中,您将能够检查您的对话是否已启动。
showDialogue()
如果你的对话被启动,那么不要执行showDialogue()
中剩下的代码,就好像showDialogue()
不会被执行两次一样。它给人的错觉是,多点点击不工作。它是你想要的解决方案,没有禁用和setTimeout?
首先使用disabled,然后当对话框显示时,启用该按钮
相关文章:
- 在localhost Dev Box上测试JSONP请求的最佳方式
- 有条件更新d3.js力图中节点的最佳方法
- 为react组件传递道具的最佳方式
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 让Webpack管理Quirky AMD定义的最佳方式
- 在承诺链中处理早期回报的最佳方式
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- Angularjs 1.5.x本地化最佳实践
- 处理浮点错误的最佳方法是什么
- javascript导入的最佳实践是什么
- MobileFirst:在客户端运行计时器作业-最佳选项
- 在ng重复循环中显示条件内容的最佳方式是什么
- 在phonegap中为android调用onload函数的最佳方式
- 实现比较方法的最佳实践是什么;s的比较类型是在运行时选择的
- 从数组中删除元素的最佳方法是:javascript/jquery
- 链接两个网页或网络应用程序的最佳方式
- 什么's是连接供应商js文件的最佳方式
- Express服务器中语言子域的最佳实践
- 什么's是在javascript中迭代项的最佳方式
- 是解决按钮点击太快的最佳常用方法