我使用jQuery-ui选项卡小部件作为导航。所有选项卡的内容都通过ajax加载。似乎标签之间存在干扰。我的意思是,例如,如果在tab1的page1中有一个ID为foo的元素,并且在tab2的page2中有一个具有相同ID的元素。在这两个页面中,都有JavaScript代码来操作ID为foo的元素,然后会发生奇怪的事情。jQuery-ui选项卡:选项卡之间的干扰
如何处理这种情况?
我使用jQuery-ui选项卡小部件作为导航。所有选项卡的内容都通过ajax加载。似乎标签之间存在干扰。我的意思是,例如,如果在tab1的page1中有一个ID为foo的元素,并且在tab2的page2中有一个具有相同ID的元素。在这两个页面中,都有JavaScript代码来操作ID为foo的元素,然后会发生奇怪的事情。jQuery-ui选项卡:选项卡之间的干扰
如何处理这种情况?
您可以通过具有唯一ID处理它 - 也就是说,后所有的ID点。 :)就jQuery选择器而言,是的,你可以说明你认为哪一个元素是Bayard Randel解释,但这是一个危险的做法。我从个人经验中发现,它最终会反过来咬你 - 在某个地方,不知何故,你会忘记你有重复的ID。避免它们。
当您使用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();
同意,元素ID应该是唯一的。 – 2010-04-19 03:55:27
这意味着我必须修改所有页面的代码... 无论如何,似乎没有更好的解决方案。 – powerboy 2010-04-19 04:10:44