2009-11-11 78 views
0

我有这些超链接将跳转到锚标签在UL的一些地方跳转到克隆后的锚标记

<a href="#A">A</a> 
<a href="#B">A</a> 
<a href="#C">A</a> 

<ul> 
<li><a name="A"></a></li> 
<li><a name="B"></a></li> 
<li><a name="C"></a></li> 
</ul> 

这是为了确保我跳转到合适的字母列表中(这是漫长的,将有滚动条)。我遇到的问题是,当文档准备就绪时,这是克隆(网站对不同目的的要求 - 不能在此更改)。所以在克隆之后,有两组锚定标记做同样的事情。我可以更改克隆的ID,但不能更改内部的ID。我想要的结果是,当点击A或B或C时,它会使新克隆跳转

如何解决此问题?如果有一种方法可以避免使用这些锚标签,那也可以。我认为jQuery有一种方法可以跳转到特定的选择器,对吧?让我知道。

感谢

回答

1

jQuery ScrollTo插件可以解决您的问题。

jQuery.ScrollTo

相关:JQuery focus

或者你也可以添加这个脚本:

clone.find("a[href^=#]").each(function() { 
    var anchor = $(this); 
    var name = anchor.attr("href"); 
    anchor.attr("href", name + "_1"); 
    clone.find("a[name=" + name.substring(1) + "]").attr("name", name.substring(1) + "_1"); 
}); 
0

在您创建克隆也从原来的LI元素删除属性相同的功能。

0

可以动态改变克隆元素的name属性:

$(function() { 
    names = ['A', 'B', 'C']; 

    $.each(names, function(i, name) { 
     $("[name='" + name + "']")[1].name = name + "2"; 
    }); 
}); 

然后你就可以跳转到“#A2”为例。