在函数JQUERY click removeAttr怎么让命令失效?该如何操作?

<a href="javascript:;" class="btn_1">按钮1</a>
<a href="javascript:;" class="btn_2">按钮2</a>
$(function() {
function foo(){
$(".btn_2").removeAttr("class");
alert('aa');

}
$(".btn_1").bind("click",foo);
$(".btn_2").bind("click",foo);
});
我点击按钮1的时候,按钮2的class移除,弹出"aa",为什么我再点击按钮2的时候还能弹出"aa",class="btn_2"都没有了,为什么点击按钮2还能执行,当我点击按钮1以后怎样让按钮2无效??

繁花不似锦
浏览 209回答 2
2回答

守候你守候我

js:$(function()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;foo(){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//var&nbsp;elm&nbsp;=&nbsp;$(event.target);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(this).attr('class','dada').siblings().removeAttr('class');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//$(this).addClass('class').siblings().removeClass('class');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;$("a").bind("click",foo);&nbsp;&nbsp;&nbsp;&nbsp;})

qq_遁去的一_1

你btn_1和btn_2都绑定了click事件,执行相同的函数操作foo(),此时不管你在何时点击这两个按钮都会触发click事件而去执行foo函数。&nbsp; &nbsp;&nbsp;$(".btn_2").bind("click",foo);方式绑定事件,是先通过CSS样式找到对应的元素对象,然后为这个元素的对象绑定,此后,并不会因为你将其中的一个样式或属性移除后,对应的绑定事件不生效,因为事件是绑定到元素对象上,而不是你这个属性。你这个属性只是jQuery的一个选择器,表示通过这个属性来找到对应 的元素。&nbsp;&nbsp;&nbsp;&nbsp;如果要取消绑定事件,就必须再找到这个元素,然后将对应的事件解绑unbid&nbsp; &nbsp; 根据你问题的意思是,在你成功移除了按钮2的class样式后,这个按钮应该失效,那么,你应该在执行完点击事件后,将btn_2绑定的click事件解除:$(".btn_2").unbind("click");,那么你上面的函数应该修改成:function&nbsp;foo(){&nbsp;&nbsp;&nbsp;&nbsp;$(".btn_2").removeAttr("class").unbind("click");&nbsp;&nbsp;&nbsp;&nbsp;alert('aa');&nbsp;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java
JQuery