JavaScript跳过代码(因为JavaScript引擎正忙?)

JavaScript跳过代码(因为JavaScript引擎正忙?),javascript,jquery,Javascript,Jquery,在JavaScript删除了很多DOM元素之后,当我试图执行一些代码时,我在代码中遇到了一个问题 我正在开发一个名为Castor的Web应用程序。这是一个代码编辑器,它工作得很好。问题是,我在关闭编辑器选项卡后出错。我希望编辑器在关闭另一个选项卡后选择一个选项卡。不幸的是,这不起作用。删除DOM元素附近的代码不会执行 HTML 如果我单击中间选项卡的十字,编辑器将消失,选项卡将消失,我在控制台中获得一个输出,但其他选项卡均未被单击 console.log的输出是54750457a94f6edit

在JavaScript删除了很多DOM元素之后,当我试图执行一些代码时,我在代码中遇到了一个问题

我正在开发一个名为Castor的Web应用程序。这是一个代码编辑器,它工作得很好。问题是,我在关闭编辑器选项卡后出错。我希望编辑器在关闭另一个选项卡后选择一个选项卡。不幸的是,这不起作用。删除DOM元素附近的代码不会执行

HTML

如果我单击中间选项卡的十字,编辑器将消失,选项卡将消失,我在控制台中获得一个输出,但其他选项卡均未被单击

console.log的输出是54750457a94f6editor

这表明tab.next表示文件名为“functions.js”的选项卡,这是正确的


我已将$element.click替换为$element.triggerclick,但没有任何帮助。我甚至在这个if语句中粘贴了整个click事件代码,但似乎没有任何效果。我希望你能帮我解决问题。

换一行怎么样:

 tab.next().click();
 tab.next().children(':eq(0)').click(); // credit to Felix Kling for his comment
关于这一行:

 tab.next().click();
 tab.next().children(':eq(0)').click(); // credit to Felix Kling for his comment
tab似乎是具有单击侦听器的元素的父元素,因此在父元素上激活单击根本没有任何效果。我假设理想的div是该父级的第一个子级

请参见可怕的css。您只需要在选择器中添加一个空格,然后更改

$(".castor-tab.active").removeClass("active");
为此:

$(".castor-tab .active").removeClass("active");

$.castor-tab.active正在查找同时具有castor选项卡和活动类的元素。$。castor tab.active将查找类处于活动状态且是castor tab后代的元素。

。first返回集合中的第一个元素,而不是第一个子元素。因为.next将返回一个最多包含一个元素的集合,调用.first对它没有影响,即它是等效的。请尝试从castor选项卡集合而不是活动类中删除活动类。这样,如果存在任何歧义,则在重新添加active之前,它将从所有活动中清除。我认为浏览器不允许/忽略用户事件,如单击,以避免单击欺诈。是我错了,还是最近改变了?而且,当引擎繁忙时,JavaScript从未被跳过,脚本只是挂起。js看起来唯一被跳过的时间是异步代码,开发人员希望异步代码在处理内联代码之前完成。