javascript - Jquery click()事件的禁用
问题描述
$(document).ready(function(){ $('.menua1').click(function(){ //执行了点击事件的内容 });});function toggleMenu(){ var fs = window.top.document.getElementById('bframeset'); if(条件true){$('.menua1_noclick').attr('class','menua1'); }else{$('.menua1').attr('class','menua1_noclick'); }}
//HTML<a class='menua1'>A按钮</a>
当我点击B按钮调用了toggleMenu(),将该元素的class值改变,我觉得以前ready()里面的click事件应该失效,当我在调用toggleMenu()时把class的值换成初始值,click()应该正常能够运行;但是不管这个a标签的class值怎么改变都不会影响到我原来的click,改变了class的值也依然能够点击进入执行jqeury代码,求解。
我的目的是:需要在点击B按钮后,将A按钮原有的点击事件禁用,当再次点击B按钮在开启A按钮原有的点击事件。
在线等待,请高手指教。
问题解答
回答1:当我点击B按钮调用了toggleMenu(),将该元素的class值改变,我觉得以前ready()里面的click事件应该失效
首先这句话, 这个理解就是错误的.
举个栗子:
有一个人叫小明, 他爸妈管他叫小明明, 他老婆管他叫大明明, 有一天小明的手破了一个口, 他爸/妈看到了问: 小明明你手怎么弄破了?他老婆说: 大明明做菜的时候不小心切到了又回头问小明: 老公, 你的手还痛吗?爸/妈说: 哎, 都这么大的人了 还叫大明明干嘛? 多不好听老婆说: 好, 以后不叫了
Question: 小明的手坏了没有?
jQuery的选择器, 是为了通过不同的手段选择到元素, 但是你对它造成的shanghai, 不会因为你改变了它的某个属性而消除.
所以回归正题, 给元素绑定了点击事件, 需要清除
1. 如果是js绑定:ele.onclick = function(){...}//要清除的话 , 用空方法覆盖ele.onclick = function(){}2. jQuery on方法绑定的点击事件//用off解除绑定$ele.on('click', function(){})$ele.off('click', function(){})3.或者在点击事件的回调中判断状态(全局变量/flag)var flag = true;$ele.on('click', function(){ if(flag){ ... }});function toggle(){ flag = !flag;}回答2:
楼上举得列子也是有点意思,简单来讲,事件的绑定仅仅和元素的本身有关,跟他以后叫什么名字没太大关系。就好像说你的身份证代表了你这个人,然后有一天你换了名字,身份证是否就变成了代表别人?就是这个道理
回答3:$('.menua1').off(’click’),把按钮取消绑定click事件不就行了么
相关文章:
1. 为什么span的color非要内联样式才起作用?2. javascript - swiper.js嵌套了swiper 初始设置不能向下一个滑动 结束后重新初始3. python - Django ManyToManyField 字段数据在 admin后台 显示不正确,这是怎么回事?4. docker - 如何修改运行中容器的配置5. python - 如何修改twisted自带的日志输出格式?6. 求救一下,用新版的phpstudy,数据库过段时间会消失是什么情况?7. 请问一下各位老鸟 我一直在学习独孤九贱 现在是在tp5 今天发现 这个系列视频没有实战8. 在cmd下进入mysql数据库,可以输入中文,但是查看表信息,不显示中文,是怎么回事,怎新手,请老师9. 如何使用git对word文档进行版本控制?10. 高并发写入和更新mysql

网公网安备