为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

繁花不似锦 2022-02-24 10:06:25
<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无效??
查看完整描述

2 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

js:


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


查看完整回答
反对 回复 2022-02-27
?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

你btn_1和btn_2都绑定了click事件,执行相同的函数操作foo(),此时不管你在何时点击这两个按钮都会触发click事件而去执行foo函数。

    $(".btn_2").bind("click",foo);方式绑定事件,是先通过CSS样式找到对应的元素对象,然后为这个元素的对象绑定,此后,并不会因为你将其中的一个样式或属性移除后,对应的绑定事件不生效,因为事件是绑定到元素对象上,而不是你这个属性。你这个属性只是jQuery的一个选择器,表示通过这个属性来找到对应 的元素。

    如果要取消绑定事件,就必须再找到这个元素,然后将对应的事件解绑unbid

    根据你问题的意思是,在你成功移除了按钮2的class样式后,这个按钮应该失效,那么,你应该在执行完点击事件后,将btn_2绑定的click事件解除:


$(".btn_2").unbind("click");

,那么你上面的函数应该修改成:


function foo(){    $(".btn_2").removeAttr("class").unbind("click");    alert('aa'); }



查看完整回答
反对 回复 2022-02-27
  • 2 回答
  • 0 关注
  • 208 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信