JQUERY запускается дважды в этом фрагменте кода ScrollTo Highlight? - PullRequest
1 голос
/ 25 февраля 2010

Есть идеи с учетом приведенного ниже кода, почему выделение запускается дважды? Я подтвердил, что он работает дважды с использованием предупреждений, которые срабатывают более одного раза. Видите здесь что-нибудь не так?

//Scroll to the Anchor in the URL, if there is one
var destination = $(document.location.hash).offset().top;
$("html:not(:animated),body:not(:animated)").animate({ scrollTop: destination-20}, 500, function() {
// Animation complete.
$(document.location.hash).effect("highlight", {}, 3000);
});

1 Ответ

2 голосов
/ 25 февраля 2010

Запустите ваш селектор в консоли Firebug. Я почти уверен, что он вернет две вещи. Запустите в консоли "$ (" html: not (: animated), body: not (: animated) "). Size ()", и вы поймете, что я имею в виду. Практически на любой веб-странице вы найдете соответствие html: not (: animated) и body: not (: animated). Запятая в вашем селекторе означает «Выбирает объединенные результаты всех указанных селекторов». Документ API здесь . И вызов animate будет действовать на каждый возвращаемый элемент упакованного набора. Может быть, что-то еще происходит, но я бы сначала проверил размер упакованного набора.

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