Javascript 停止不使用Firefox的传播

Javascript 停止不使用Firefox的传播,javascript,firefox,Javascript,Firefox,我的可折叠列表适用于IE 11、Chrome 46、Opera 32和Safari,但不适用于Firefox 40 所需功能: 单击第一个li项目(=国家)时,下面隐藏的ul将可见。ul包含至少一个li,该li可以包含隐藏的ul等。当它们可见时单击它们将使整个分支可见,如下所示: 在首次单击之前: ... Mexico ... ... Mexico ... 第一次点击后 ... Mexico Chichen-Itza ... ... Mexico Chichen-Itza

我的可折叠列表适用于IE 11、Chrome 46、Opera 32和Safari,但不适用于Firefox 40

所需功能:

单击第一个li项目(=国家)时,下面隐藏的ul将可见。ul包含至少一个li,该li可以包含隐藏的ul等。当它们可见时单击它们将使整个分支可见,如下所示:

在首次单击之前:

...
Mexico
...
...
Mexico
...
第一次点击后

...
Mexico
    Chichen-Itza
...
...
Mexico
    Chichen-Itza
...
点击“奇琴伊萨”后

单击“Doe,John”将在另一个div中加载个人数据,可折叠列表将不受影响

这在每个浏览器中都能正常工作,除了Firefox,尽管我努力阻止传播(?)仍在继续。在Firefox中,会发生以下情况:

在首次单击之前:

...
Mexico
...
...
Mexico
...
第一次点击后

...
Mexico
    Chichen-Itza
...
...
Mexico
    Chichen-Itza
...
点击“奇琴伊萨”后

“传播”再次单击了第一个项目,从而将其关闭。如果我再次点击“墨西哥”,我会得到:

...
Mexico
    Chichen-Itza
        Doe, John
...
所以我的结论是,除了第一个项目收到的额外点击之外,一切都正常。我一直试图找到这个问题的答案,但失败了,我的javascript技能也有限

这是我的代码:
HTML:


为什么只有Firefox受到困扰而其他浏览器没有呢?

Firefox没有全局
事件。它作为一个参数传递给事件处理程序。谢谢。我不知道如何通过这次活动。如果我更改为onclick=“CLtoggle('li_40','ul_40',event);”并在函数中添加第三个参数,这就足够了吗?。是的,因为“onxxx”类型的事件处理程序被处理为将
事件作为具有该名称的参数传入,因此您可以传递它。在其他浏览器上,这将作为全局
事件的引用,因此它也应该在那里工作。再次感谢Pointy。我已经修改了我的代码,现在它在我所有的浏览器中都能完美地工作!Firefox没有全局
事件。它作为一个参数传递给事件处理程序。谢谢。我不知道如何通过这次活动。如果我更改为onclick=“CLtoggle('li_40','ul_40',event);”并在函数中添加第三个参数,这就足够了吗?。是的,因为“onxxx”类型的事件处理程序被处理为将
事件作为具有该名称的参数传入,因此您可以传递它。在其他浏览器上,这将作为全局
事件的引用,因此它也应该在那里工作。再次感谢Pointy。我已经修改了我的代码,现在它在我所有的浏览器中都能完美地工作!