-2

私は多くの HTML ボタンを作成しました。ユーザーがそれを押すと、背景色を変更するか、ユーザーに知らせるために何かを行う必要があります。ただし、最初からそのイベントを作成するわけではありません。

トリガーされたすべてのイベントに多くの指示を追加して色を変更する必要があるのか​​ 、それとももっと便利な別の単純なアプローチがあるのでしょうか。

を受け取るパブリック関数を作成し、button idそれを使用してどのボタンを強調表示するかを制御したいと考えています。それにもかかわらず、次のようなボタン ID を取得する方法がわかりません。

$("#upload").bind("click", function(){

 //I want to get the string 'upload'
 })

もっと便利なアプローチはありますか?多くのボタンにたくさんの指示を追加したくありません。

4

4 に答える 4

0

thisイベント ハンドラー メソッド内では、クリックされたボタンが参照されるため、 を使用して ID を取得できますthis.id

var buttons = $(":button").bind("click", function(){
    buttons.not(this).css('background-color', '')
    $(this).css('background-color', 'blue')
})

これにより、クリックされたボタンの背景が青に変わります

デモ:フィドル

しかし、これを行うにはcssクラスを使用することを好むかもしれません

button {
    background-color: lightgrey;
}

button.active {
    background-color: blue;
}

var buttons = $(":button").bind("click", function(){
    buttons.filter('.active').removeClass('active')
    $(this).addClass('active')
})

デモ:フィドル

于 2013-07-29T03:28:51.917 に答える
-1
$(":button").bind("click", function(){
            iid=this.id;
                if(iid=="upload")
                {
                    $(this).css('background-color', 'blue')
                }
                else if(iid=="upload1")
                {
                    $(this).css('background-color', 'yellow')
                }
                else
                {

                }
            });
    });
于 2013-07-29T03:44:32.933 に答える
-1

これは、あなたの望むことですか?

デモ

HTML

 <div data-role=page id=home>
              <div data-role=header>
                <h1>Location</h1>
              </div>

              <div data-role=content>

                    <a id="ButtonLocation" data-role="button" ><h4>Upload</h4></a>
              </div>
</div>

JS:

$('#ButtonLocation').click(function() {
    alert($(this).text())
});
于 2013-07-29T03:33:43.013 に答える
-1

特定の質問で、ID が必要な場合は、次のようにします。

$("#upload").bind("click", function(){
   var upload = $(this).attr('id'); //this is the id
})

キーは .attr('id') です

他のポスターが述べているように、背景色を変更するだけであれば、これは必要ありません。ただし、決定した特定の ID のみを処理する 1 つの関数が必要な場合は、次のようにすることもできます。

$("button").bind("click", function(){
   var thisID = $(this).attr('id'); //this is the id

   if (thisID == "upload") {
      $(this).css({"background":"black","color":"white"});
   }
});

乾杯、お役に立てば幸いです。

于 2013-07-29T03:35:33.853 に答える