jQuery 选择器不工作/点击触发器未触发
jQuery selector not working / click trigger is not triggered
我的网站有 3 个 "desktops" (div),点击顶部栏中的 td
,"desktops" 中的一个出现
$("#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>
这是我的 "desktops"
<div id="desk1">Content</div>
<div id="desk2">Content</div>
<div id="desk3">Content</div>
Desktops
和 Navbar
都是 body
的直系子代
一种可能是您在实际绑定事件之前触发了点击事件。
检查 if
块和 $("#bar td").click(function() { ...
的顺序
我的网站有 3 个 "desktops" (div),点击顶部栏中的 td
,"desktops" 中的一个出现
$("#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>
这是我的 "desktops"
<div id="desk1">Content</div>
<div id="desk2">Content</div>
<div id="desk3">Content</div>
Desktops
和 Navbar
都是 body
一种可能是您在实际绑定事件之前触发了点击事件。
检查 if
块和 $("#bar td").click(function() { ...