如何借助bind函数实现按钮10秒禁用功能?
实现按钮点击后禁用10秒的jQuery方案
你的代码存在两个核心问题:
- 没有对按钮执行禁用操作,只是调用了
bind()空方法,根本达不到禁用效果 - setTimeout里的
bind()调用语法错误,该方法需要指定事件类型和处理函数,空调用没有任何意义
正确的实现思路是:点击按钮时立即禁用它,执行业务逻辑ScanRegistration(),10秒后再恢复按钮的可用状态。以下是修正后的代码:
jQuery('#wsf-1-field-155').bind('click', function() { // 禁用当前按钮并缓存元素 const $btn = jQuery(this); $btn.prop('disabled', true); ScanRegistration(); // 10秒后恢复按钮可用 setTimeout(function() { $btn.prop('disabled', false); }, 10000); })
关键说明:
- 使用
prop('disabled', true)禁用按钮,这是jQuery处理布尔类型DOM属性的标准方式,比操作attr()更可靠 - 缓存按钮元素到变量
$btn,避免多次重复查询DOM,提升性能 - 按钮禁用仅阻止用户交互,之前绑定的click事件不会丢失,恢复禁用后点击依然会触发事件
内容的提问来源于stack exchange,提问作者Celil
相关产品推荐
相关产品推荐

