2009-11-11 5 views
0

Je ces hyperliens qui sautera pour ancrer les balises dans UL certains oùAller au tag ancre après clone

<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> 

Ceci est pour vous assurer que je saute à la lettre droite alphabétique dans la liste (qui est longue et aura scroller). Le problème que j'ai est que cela est clone lorsque le document est prêt (l'exigence du site Web pour un but différent - ne peut pas changer ici). Donc, après le clone, il y a deux jeux d'étiquettes d'ancrage qui font la même chose. Je peux changer l'ID de sur le clone mais pas l'intérieur. Le résultat que je veux est que lorsque vous cliquez sur A ou B ou C, il fera le saut dans le nouveau clone à la place

Comment résoudre ce problème? S'il y a un moyen d'éviter d'utiliser ces balises d'ancrage, c'est bien aussi. Je pense que jQuery a un moyen de passer à un sélecteur spécifique, non? Faites le moi savoir.

Merci

Répondre

1

Le plugin jQuery ScrollTo pourrait résoudre votre problème.

jQuery.ScrollTo

connexes: JQuery focus

Ou vous pouvez ajouter ce script:

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

Dans la même fonction dans laquelle vous créez le clone également supprimer le nom attribut des éléments LI de l'original.

0

Vous pouvez modifier dynamiquement l'attribut name des éléments clonés:

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

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

Ensuite, vous pouvez passer à « # A2 » par exemple.