javascript - jQuery 选择器不起作用/点击触发器未触发

标签 javascript jquery html jquery-selectors

我有一个包含 3 个“桌面”(div) 的网站,单击顶部栏中的 td 就会出现其中一个“桌面”

$("#bar td").click(function() {
    var hash = $(this).data("sDiv");
    $(hash).animate({right: "0px")}, 400);
});

到目前为止,一切正常。

然后,我添加了此脚本,以便在有人使用哈希打开页面时选择其中一个 td(更改颜色)。

if(location.hash.length !== 0) {
    $("[data-sDiv='" + location.hash + "']").addClass("selected");
}

一切都工作正常。

之后,在前面的 if 中,我添加了另一个脚本,用于在有人使用哈希打开页面时触发对 td 的点击。

$("[data-sDiv='" + location.hash + "']").trigger("click");

但是使用此代码不会触发点击,但代码的其余部分工作正常。我在控制台中没有错误,所以我不明白我做错了什么,为什么这不起作用?

编辑(添加信息):

这是我的导航栏

<div id="bar">
    <table cellpadding="0" cellspacing="0">
        <tr>
            <td data-sDiv="#desk1"><a data-bash="42548">Desktop 1</a></td>
            <td data-sDiv="#desk2"><a data-bash="42CA1">Desktop 2</a></td>
            <td data-sDiv="#desk3"><a data-bash="42FC9">Desktop 3</a></td>
        </tr>
    </table>
</div>

这是我的“桌面”

<div id="desk1">Content</div>
<div id="desk2">Content</div>
<div id="desk3">Content</div>

DesktopsNavbar 都是 body 的直接子级

最佳答案

一种可能性是您在实际绑定(bind)事件之前触发了单击事件。

检查 if block 和 $("#bar td").click(function() { ...

的顺序

关于javascript - jQuery 选择器不起作用/点击触发器未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32500386/

相关文章:

java - 如何从Java Applet中调用JS函数?

javascript - 在 Bootstrap 中隐藏和显示按钮

javascript - 王牌 :datatable filter listener

javascript - 为什么clipboardData没有截图数据

javascript - 使用 JavaScript 更改元素上的 CSS 类,无需 FOUC

javascript - 获取关联数组的特定值及其键名

javascript - 浏览器显示缓存的 img 而不是新的

javascript - 选择图像的一部分并使用 jQuery 检索其坐标

javascript - 在 li 中获取特定图像之上的跨度

javascript - 在没有 jquery 的情况下将文本添加到模糊的 textarea 值