2015-09-10 124 views
1

我有3“桌面”网站(申报单),并单击顶栏中的“桌面”的一个td进来jQuery选择不工作/点击触发没有被触发

$("#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

+0

你有没有试过以下? (“[data-sDiv ='”+ location.hash +“']”)。click(); –

+2

是的@DanielRosano,这不起作用,结果相同。没有错误。 – Mannanna

+1

'td'和'div/desktop'之间的关系/层次结构是什么?你可以发布'html'吗? –

回答

0

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

检查您if块的顺序和$("#bar td").click(function() { ...