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;
}
添加回答
举报