0

ASP.NET Webサイトを構築していますが、1ページの動作に戸惑っています。長いフォームと送信ボタンがあり、ページのスクロールを処理するために、ページの下にJavaScriptがあります。フォームの送信時にバックアップします。最初に送信ボタンをクリックすると、それ以降のすべてのクリックがまったく機能しません。理由は何ですか。

<script type="text/javascript">
    $(".thebutton").click(function(){
       $("html, body").animate({scrollTop: 200}, 1000); 
    });
</script>

乾杯、ティ

4

3 に答える 3

0

[送信]ボタンが完全なポストバックを実行する場合、2番目のWebページインスタンスでソースを表示し、スクリプトがまだそこにあることを確認します。

于 2009-10-09T19:57:10.960 に答える
0

スクリプトは投稿の前に実行されます。

次のことを想像してみてください。

jQueryを使用した初期ページロードバインドクリックイベント

クリックボタンjQueryクリックが発生しますhtmlと本文scrollTopは、フォームが送信される「アニメーション」中に200に設定されます

asp.netバックエンドクリックイベントコードが実行され、ページが再ロードされます。

string script = "$(function() { $('html, body').scrollTop(200); });";
ClientScript.RegisterStartupScript(this.GetType(), "scrollTop", script, true);

それはあなたが達成したいことの世話をする必要があります。

それが役に立てば幸い。

于 2009-10-10T02:12:30.973 に答える
0

ああ、

Ajax投稿を使用すると、上記の私の投稿とは異なります。

あなたのajax呼び出しはページのボタンを変更しますか?質問のボタンを含むUpdatePanelを使用していると思います。

Ajax呼び出しを行うと、UpdatePanelのコントロールが再構築されているため、DOMはそれらを別のオブジェクトと見なし、これらの新しいオブジェクトはjQueryクリック関数にバインドされなくなります。探している機能を再度有効にするには、ajax投稿後にこれらのボタンクリックイベントを再バインドする必要があります。

jQuerysを使用すると、新しい「ライブ」ハンドラーでうまくいくはずです。

$(".thebutton").live("click", function() {
      $("html, body").animate({scrollTop: 200}, 1000);
});

それが役に立てば幸い。

于 2009-10-10T14:51:56.813 に答える