Перейти к тегу привязки после клона - PullRequest
0 голосов
/ 11 ноября 2009

У меня есть эти гиперссылки, которые будут переходить к якорным тегам в 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>

Это сделано для того, чтобы я перешел к правильной буквенной букве в списке (она длинная и будет иметь скроллер). У меня проблема в том, что это клон, когда документ готов (требование веб-сайта для других целей - здесь изменить нельзя). Итак, после клона есть 2 набора тегов привязки, которые делают то же самое. Я могу изменить идентификатор на клоне, но не внутренний. Результат, который я хочу получить, заключается в том, что при нажатии на кнопку A, B или C вместо нового клона будет выполнен скачок

.

Как решить эту проблему? Если есть способ избежать использования этого тега привязки, это тоже хорошо. Я думаю, что у jQuery есть способ перейти к определенному селектору, верно? Дайте мне знать.

Спасибо

Ответы [ 3 ]

1 голос
/ 13 ноября 2009

Плагин 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 голосов
/ 11 ноября 2009

Вы можете динамически изменить атрибут имени клонированных элементов:

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

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

Затем вы можете перейти к "# A2", например.

0 голосов
/ 11 ноября 2009

В той же функции, в которой вы создаете клон, также удалите атрибут name из элементов LI оригинала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...