Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Переход к якорю (https://javascript.ru/forum/events/48944-perekhod-k-yakoryu.html)

diakon 22.07.2014 19:40

Переход к якорю
 
Добрый день. Делаю переход к якорю при клике на область с ссылкой. Но при клике выдается ошибка

TypeError: $(...).offset(...) is undefined
destination = $(target).offset().top;

И переход не происходит. Вот код
$(".yakor").click(function(){
		var target = $(this).find("a").attr("href");
		destination = $(target).offset().top;
		if($.browser.safari){
		$('body').animate( { scrollTop: destination }, 1100 );
		}else{
		$('html').animate( { scrollTop: destination }, 1100 );
		}
		return false;
	});


<li class="yakor">
<a href="#tren">Тринажеры</a>
</li>

....

<p>
<a name="tren"></a>
Тренажеры
</p>


Заранее спасибо всем, кто поможет!

Татьяна5 22.07.2014 20:34

target равен #tren
$('#tren') - это обращение по id, а не по name

BETEPAH 22.07.2014 22:24

diakon,
проверьте в начале скрипта что возвращает $(this).find("a")

рони 22.07.2014 22:39

Цитата:

Сообщение от Татьяна5
$('#tren') - это обращение по id, а не по name

:yes:
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  body  {
     height: 1000px

  }
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
     $(function(){
      $(".yakor").click(function(){
		var target = "[name='"+$(this).find("a").attr("href").substr(1)+"']",
		destination = $(target).offset().top;
		$('body, html').animate( { scrollTop: destination }, 1100 );
		return false;
	});

});
  </script>
</head>

<body>
<li class="yakor">
<a href="#tren">Тринажеры</a>
</li>

....

<p>
<a name="tren"></a>
Тренажеры
</p>

</body>

</html>

diakon 22.07.2014 23:24

Рони, спасибо! +от меня
Проблема не в # - я replace удалил его и не заработало. Но код, Рони работает.
Спасибо всем, кто решил помочь!

рони 22.07.2014 23:34

diakon,
$.browser.safari -- такого давно нет в jquery


Часовой пояс GMT +3, время: 08:03.