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

Jquery click()事件的禁用

Jquery click()事件的禁用

莫回无 2018-11-15 18:18:50
$(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 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

当我点击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;

}


查看完整回答
反对 回复 2018-12-15
  • 1 回答
  • 0 关注
  • 2911 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号