2

標準のaspボタンがあり、クリックするとトリガーされます。

protected void btnDealItem_Click(object sender, EventArgs e)
{
    divMyDiv.Style.Add("background-position", "70px 0");
}

問題は、ボタンがクリックされたときに背景が右に70ピクセルシフトしないことです。

これはこれを行う正しい方法ですか、それとも構文の問題ですか?

4

2 に答える 2

1

JQuery を使用してクライアント側で実行できます: http://jquery.com/

あなたのコードから、ボタンのクリックイベントで他に何もしたくないと仮定しています。この行return false;は、ボタンがページをポストバックするのを防ぎます。

 $(document).ready(function () {
     $("#" + <%= btnDealItem.ClientID %>).click(function() {
          $(this).attr("style", "background-position:70px 0;" );
          return false;
     });
 });

また

<style>
     .backgroundshift {
        background-position: 70px 0;
     }
</style>


 $(document).ready(function () {
     $("#" + <%= btnDealItem.ClientID %>).click(function() {
          $(this).addClass("backgroundshift");
          return false;
     });
 });
于 2010-08-24T09:41:01.410 に答える
0

問題は、ボタンがクリックされた後にスタイルがサーバー側で定義されることです。単純化されたシナリオは次のようになります。

  1. サーバーが初めてページをレンダリングします。
  2. ユーザーがボタンをクリックします。
  3. サーバーは、button_click イベントを呼び出します。
  4. サーバーがページをレンダリングします。
  5. ユーザーは、背景画像の位置が変更されたボタンを見ることができます。

ボタンをクリックした直後に変更を行いたい場合は、java スクリプトを介してクライアント側スクリプトを使用します。

于 2010-08-24T09:48:53.117 に答える