0

jqueryを使用してアンカーまでスクロールしています...関数を呼び出すhtmlボタンで正常に動作します...

しかし、サーバー側から呼び出すとIDを取得しますが、機能しないようです...

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

アンカーのアラートIDを取得しましたが、なぜ機能しないのですか。

これが私のアンカーです...

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

HTMLボタンで完全に機能します。

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

4

1 に答える 1

0

関数を持ってきて、スクロールトップをその領域から外してみることができます。animate()がそれを処理できるかどうかはわかりません。

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

それでもうまくいかない場合は、わかりません。セレクターで文字列にするつもりだったjQueryを説得しなければならなかったことを覚えているよう$("#"+id+"")です。

于 2010-03-03T08:05:00.503 に答える