Я хочу анимировать документ в div и выделить его. Ниже мой код, и он хорошо работает, он подчеркивает div дважды.
Любая идея почему? Как я могу просто выделить div только один раз?
$(".button-main-menu").click(function(){
$("html, body").animate({ scrollTop: $(".box-main-menu").offset().top }, 1000, function(){
$(".box-main-menu").effect("highlight", {}, 1000);
});
return false;
});
Как вы используете как html
и body
селекторы, он стреляет в два раза. Поэтому либо используйте html, либо тело.
$(document)
здесь не будет работать. - Ошибка скрипки
$(".button-main-menu").click(function(){
$('html').animate({ scrollTop: $(".box-main-menu").offset().top }, 1000, function(){
$(".box-main-menu").effect("highlight", {}, 1000);
});
});
Используйте метод jQuery one
- http://api.jquery.com/one/
$(".button-main-menu").one('click', function(){
$("html, body").animate({ scrollTop: $(".box-main-menu").offset().top }, 1000, function(){
$(".box-main-menu").effect("highlight", {}, 1000);
});
return false;
});
Вы используете селектор $("html, body")
который выбирает первый <html>
а затем выбирает <body>
.
Это означает, что функция анимации выполняется дважды.
Есть 3 способа заставить его работать:
$("html body")
- это выберет тело в теге html.$("body")
- это выберет тег body, так как он должен быть только один раз.$(document)
- это выберет весь документ.На мой взгляд, номер 3 является самым простым и чистым.
$(document)
вместо$("html, body")
?