Jquery 停止.on()事件,并在函数完成后重新初始化

Jquery 停止.on()事件,并在函数完成后重新初始化,jquery,Jquery,我试图让多个所见即所得标签(按钮)在我的Wordpress页面编辑器中协调工作 我已经完成了一半,只需点击一下就可以锁定所有正确的标签。.each()循环工作正常 我已经为.on()创建了函数switch\u tmce()和switch\u html(),我现在像这样绑定它 $(document).on('click', '.switch-tmce', switch_tmce() ); $(document).on('click', '.switch-html', switch_html() )

我试图让多个所见即所得标签(按钮)在我的Wordpress页面编辑器中协调工作

我已经完成了一半,只需点击一下就可以锁定所有正确的标签。
.each()
循环工作正常

我已经为
.on()
创建了函数
switch\u tmce()
switch\u html()
,我现在像这样绑定它

$(document).on('click', '.switch-tmce', switch_tmce() );
$(document).on('click', '.switch-html', switch_html() );
我试图做的是设置
.on()
事件,然后当通过单击按钮触发事件时,我想暂时停止事件,以便在循环每个选项卡时不再触发该事件,然后单击触发

一旦所有的按钮点击都被触发,我想重新初始化当前事件,这样它就可以再次使用。我在下面的代码中设置了一个实时演示

单击按钮时,控制台日志应始终显示具有匹配类且没有父级
.clone
的每个按钮

更新下面的工作代码,谢谢

//文档准备就绪
(函数($){
//可视tmce开关
功能开关\u tmce(){
console.clear();
//临时禁用所有可视tmce开关
$(文档).off('单击','切换tmce',切换\u tmce);
//对于每个wysiwyg tmce开关按钮
$('.switch tmce','.acf field wysiwyg')。不是(此)。每个(函数(i){
//如果该克隆没有父克隆
if(!$(this).clones('.clones').length){
//触发开关
$(此选项)。单击();
log($(this)[0]);
}
});
//重新启用所有可视tmce开关
$(文档)。在('单击','切换tmce',切换\u tmce)上;
}
//原始html开关
函数开关_html(){
console.clear();
//临时禁用所有原始html开关
$(document).off('单击','切换html',切换html);
//对于每个wysiwyg html开关按钮
$('.switch html','.acf field wysiwyg')。不是(此)。每个(函数(i){
//如果该克隆没有父克隆
if(!$(this).clones('.clones').length){
//触发开关
$(此选项)。单击();
log($(this)[0]);
}
});
//重新启用所有原始html开关
$(文档)。在('单击','切换html',切换html);
}
//可视tmce开关的研究
$(文档)。在('单击','切换tmce',切换\u tmce)上;
//关于原始html开关
$(文档)。在('单击','切换html',切换html);
})(jQuery)
按钮{
背景:蓝色;
颜色:#fff;
}  
.克隆{
显示:无!重要;
}

视觉的
正文
视觉的
正文
视觉的
正文
视觉的
正文
视觉的
正文

您在运行时调用处理程序函数,而不是将它们作为click侦听器处理程序的引用传递

只需删除调用它们的
()

$(document).on('click', '.switch-tmce', switch_tmce );// function reference not result of calling function

不要调用
开关\u tmce
,传递函数引用而不是调用函数的结果<代码>$(文档)。在('单击','切换tmce',切换\u tmce)上。在
not()
中使用
每个
循环也没有意义。不知道会发生什么谢谢你这么多人你帮了我大忙。我刚刚更新了上面的代码,现在运行得很好。使用
.not()
我排除了正在单击的按钮。似乎在工作。我的坏…我误读了结束语
中的
not()
…忽略我上面的评论,因为我喝了更多的早上咖啡。注意你可以简化为
not(this)
,而不用在另一个
$()
电话中包装
这个
,这是一个伟大的口号,用
这个
更新了代码,效果很好。非常感谢。如果你想用我上面的代码删除一个答案,我可以恢复到我以前的代码。如果不是,请不要担心,再次感谢!