首页 > 解决方案 > 无法通过 javascript 切换类

问题描述

我在 a 中有一组tr标签,table其中一些标签有collapsible-parent. 当我单击行中的元素时,它会调用此 javascript 方法:

function toggle() {
    $(this).closest("tr").nextUntil(".collapsible-parent").toggleClass("open");
}

但是中间的行都没有open添加类。所以 HTML 是这样的:

<tr class="collapsible-parent">
    <td>
        <span onclick="toggle()"><i class="fa fa-chevron-circle-right"></i></span>
    </td>
    ...
</tr>
<tr>....</tr>
<tr>....</tr>
<tr class="collapsible-parent">....</tr>

因此,如果我在显示的第一个上触发该方法tr,我希望第二个和第三个tropen类添加到它们中。

我做错了什么?

标签: javascriptjquery

解决方案


我刚刚意识到你已经解决了你的问题,但我会保留答案以供将来参考,因为它是一个棘手的错误。

jQuery未onclick正确捕获事件侦听器。我已经成功地通过idspan元素上添加一个然后.on("click")使用 jQuery 添加一个侦听器来成功运行它。

在 span 元素上添加一个 id:

<span id="btn"><i class="fa fa-chevron-circle-right"></i></span>

并使用 jQuery 添加监听器:

$("#btn").on("click", function() {
    $(this).closest("tr").nextUntil(".collapsible-parent").toggleClass("open");
});

推荐阅读