jQuery localScroll - не работает со ссылками, которые имеют необычные знаки препинания / символы - PullRequest
0 голосов
/ 04 марта 2012

Мы используем замечательный плагин под названием localScroll with scrollTo в нашей университетской вики, и это сделало эту задачу прокрутки очень простой, она прекрасно работает. В вики есть автоматическое оглавление для длинных страниц, которое ссылается на любой заголовок от h1 до h4.

Есть одна проблема, которую мне не удалось решить:

Когда заголовки в нашей вики содержат круглые скобки, восклицательный знак или вопросительные знаки и т. Д., Эффект плавной прокрутки не работает. (Заголовки и #links имеют автоматические теги привязки к ним в вики, которые соответствуют тексту заголовка). Это настраивается просто следующим образом:

    $('.content-wrapper').localScroll ({
    duration:900,         
    });

/ марко

1 Ответ

0 голосов
/ 04 марта 2012

Возможно, вы сможете проанализировать href и соответствующий идентификатор привязки, чтобы удалить специальные символы из обоих до инициализации плагина прокрутки.Не видя реальной страницы и протокола для href, используется следующая концепция:

var $links=$('.someClass a');

$links.each(function(){
    var href=$(this).attr('href');
    /* find corresponding anchor */
    var matchAnchor= $('[id="'+href+'"]');
    /* remove all special chars */
    href=href.replace(/\W/g,'');
    /* replace link href*/
    $(this).attr('href', '#'+href);

    /* replace anchor id*/
    matchAnchor.attr('id', href);   

});
...