Что не так с этой функцией jquery? - PullRequest
0 голосов
/ 03 марта 2010

Я использую jquery для прокрутки до якоря .... Он отлично работает с HTML-кнопкой, вызывающей функцию ...

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

LinkButton lb1 = (LinkButton)sender;
ScriptManager.RegisterClientScriptBlock(lb1, typeof(LinkButton),
 "scroll","goToByScroll('myAnchor')", true);

И моя функция,

<script type="text/javascript">
 function goToByScroll(id) {alert(id);
   $('html,body').animate({ scrollTop: $("#" + id).offset().top }, 'slow');
   }
 </script>

Я получил ошибку $("#" + id).offset() is null

Я получаю идентификатор оповещения своего якоря, но почему он не работает ....

Вот мой якорь ...

<a name="myAnchor" id="myAnchor"></a>

Отлично работает в кнопке html,

<input id="Button1" type="button" value="button" onclick="goToByScroll('myAnchor');"/>

1 Ответ

0 голосов
/ 03 марта 2010

Вы можете попытаться вынести свою функцию, чтобы вывести скроллтоп из этой области - не уверен, что animate () сможет с этим справиться.

var topOff = $("#" + id).offset().top;
$('html,body').animate({ scrollTop: topOff}, 'slow');

И если это не сработает, я не знаю, кажется, я помню, что мне пришлось убеждать jQuery в том, что я хотел сделать строку в селекторе, поэтому $("#"+id+"").

...