2010-04-19 83 views
0

我使用jQuery-ui选项卡小部件作为导航。所有选项卡的内容都通过ajax加载。似乎标签之间存在干扰。我的意思是,例如,如果在tab1的page1中有一个ID为foo的元素,并且在tab2的page2中有一个具有相同ID的元素。在这两个页面中,都有JavaScript代码来操作ID为foo的元素,然后会发生奇怪的事情。jQuery-ui选项卡:选项卡之间的干扰

如何处理这种情况?

回答

1

您可以通过具有唯一ID处理它 - 也就是说,后所有的ID点。 :)就jQuery选择器而言,是的,你可以说明你认为哪一个元素是Bayard Randel解释,但这是一个危险的做法。我从个人经验中发现,它最终会反过来咬你 - 在某个地方,不知何故,你会忘记你有重复的ID。避免它们。

+0

同意,元素ID应该是唯一的。 – 2010-04-19 03:55:27

+0

这意味着我必须修改所有页面的代码... 无论如何,似乎没有更好的解决方案。 – powerboy 2010-04-19 04:10:44

1

当您使用jQuery时,您可以通过使用基于选项卡名称的选择器来定位正确的元素。

例如如果您的标记看起来是这样的:

<div id="tabs"> 
    <div id="tabs-1"> 
    <a href="#" id="linkId">blah</a> 
    </div> 
    <div id="tabs-2"> 
    <a href="#" id="linkId">blah</a> 
    </div> 
</div> 

可以特别选择这个选择的第二个链接,尽管ID重复:

$("#tabs-2 #linkId").whatever();