jquery中关于removeClass的疑问

我想实现这样一个效果: 点击一个按钮之后,这个按钮变成禁用状态,点了没反应。

然后我是这样实验的:

$("button.btn-no-choose").click(function(){
    //点击效果的代码省略...
    
    $(this).addClass("disabled")
    $(this).removeClass("btn-no-choose")
})

点击之后按钮的btn-no-choose的类名确实删除了,但是点击之后还是会有效果

阅读 4.1k
7 个回答

文档加载完成后,所有的事件监听已经完成,这个时候移除class不会移除关联的事件监听
你可以加上 $(this).unbind("click"); 移除这个事件监听

禁用按钮不是class样式disabled控制的。而是属性。

<button disabled="true">禁用按钮</button>
// 或者
<button disabled>禁用按钮</button>
新手上路,请多包涵

我一直是用的起两个类名 只在一个类名上添加点击事件 点击一次之后移除带事件的类名

if($(this).hasClass('disabled')){

return;

}

// 点击效果的代码
$(this).addClass("disabled")
$(this).removeClass("btn-no-choose")

disabled 你加在类上肯定能点啊,那是disabled属性

HTMLButtonElement本身有个disabled属性,所以,你可以用$(this).prop('disabled', true);试试~

$(this).attr("disabled", "true")
$(this).removeAttr("disabled")
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题