为什么每次通话都翻倍
Why are the calls doubling each time?
本文关键字:为什么 更新时间:2023-09-26
显示在这里: JS 小提琴
这是我们关注的代码:
doit1();
function doit2(){
$("#evtTarget").on("click", function(evt) {
$("#evtTarget").addClass("highlighted");
$("#evtTarget").on("mouseover mouseleave", highlight);
$("#evtTarget").html("<p>You Turned on the hover effect!</p>");
doit1();
});}
function doit1(){
$("#evtTarget").on("click", function(evt) {
$("#evtTarget").off("mouseover mouseleave", highlight);
$("#evtTarget").html("<p>You shut off the hover effect!</p>");
$("#evtTarget").removeClass("highlighted");
console.log("check");
doit2();
});}
关于这段代码的一些东西,我无法弄清楚,来回调用并每次加倍调用。这最终会破坏页面。为什么会这样,我怎样才能做得更好?
你的代码有点"可重入"...您只需要设置一次点击...
尝试:
$(function() {
turnItOn();
$("#evtTarget").on("click", function(evt) {
if ($("#evtTarget").hasClass("highlighted")) {
turnItOff();
} else {
turnItOn();
}
});
});
function turnItOn() {
$("#evtTarget").addClass("highlighted");
$("#evtTarget").on("mouseover mouseleave", highlight);
$("#evtTarget").html("<p>You Turned on the hover effect!</p>");
}
function turnItOff() {
$("#evtTarget").off("mouseover mouseleave", highlight);
$("#evtTarget").html("<p>You shut off the hover effect!</p>");
$("#evtTarget").removeClass("highlighted");
}
function highlight(evt) {
$("#evtTarget").toggleClass("highlighted");
}
正如在这个版本的你小提琴中看到的:
https://jsfiddle.net/pnz9eooz
或者关闭事件,就像阿隆在我写这:)时建议的那样
在这两个函数上,将$("#evtTarget").on("click", function(evt) {
更改为$("#evtTarget").off( "click" ).on("click", function(evt) {
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 为什么“;未定义的“;在JavaScript中结束循环
- 为什么这在IE中的工作方式与在Firefox中不同
- 知道为什么我的旋转木马不会自动更改图片吗
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- 为什么在单独的函数中应用时转换会闪烁/断断续续(D3)
- 为什么在变形之前不缺少Fx
- 为什么JavaScript在for循环为3时向所有4发出警报
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- 为什么Airbnb风格指南说不鼓励依赖函数名称推断
- 为什么要使用0>javascript中的0
- 为什么无法在TypeScript中导出类实例
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 为什么我的d3.jsselectAll+过滤器没有过滤
- 为什么HTML5拖放的目标是孩子?(可排序列表)
- 为什么忽略了eval()代码中的语法错误
- 为什么在画布上画线;t出现
- 为什么js事件消失了
- 为什么元素的宽度在页面加载之后和那一刻之后不同
- 为什么不'在JQuery中找到第二个css选择器的工作