内部ユーザーが個別にクリックできるボタンのテーブルを作成しています。背景を白から緑、赤に切り替えてから白に戻すことができるボタンが必要です....ユーザーは内部にあり、これがChromeでのみ機能することを指定できます。基本的な HTML5/CSS3 と Javascript に固執したいと思います。より手続き的であり、私のチーム (私たちは Web ページ開発者ではありません) がそれを維持できる可能性が高いからです。
ボタン要素は、テキストやその他の要素と同じようには機能しないようです。他の背景色を変更するコードを使用しましたが、要素がボタンの場合は機能しません。
私の2つの基本的なブロッキングの問題は次のとおりです。
私のコードが次の色を計算できるように、onClick() ルーチンで現在の背景色をどのように読み取るのですか?
onClick() ルーチンの実行中または終了時に背景色が変わるように、Button 要素のスタイルまたはクラスをどのように変更しますか?
次のように、CSS ファイルで 3 つの異なる色スタイルを定義する例を見てきました。
.make-background-white { background-color: white}
.make-background-green { background-color: green}
.make-background-red { background-color: red}
これらは、最初にボタンを描画するときに使用できます。しかし、onClick() ルーチンで現在の背景色を「読み取る」方法も、色を変更する方法もわかりません。
詳細
データベースから読み取って、店舗周辺のすべての郵便番号を距離順に並べ替えました。テキストとして郵便番号を含むボタンのテーブルを作成します。これは 40 ~ 600 個のボタンの範囲です。背景色は、割り当てられていない郵便番号 (白い背景) と割り当てられている郵便番号 (緑色の背景) を示しています。
場合によっては、ユーザーがいくつかの白い郵便番号をクリックして、そのコードを店舗に割り当てたいことを知らせる必要があります。
また、ユーザーがクリックして、半径 30、60、または 90 マイルの店舗に郵便番号を自動的に色付け/割り当てることができるヘルパー ボタンも必要です。
舞台裏で郵便番号をキーとして使用する大規模なJavascriptハッシュ/連想配列があり、これを使用してボタンを作成し、距離を追跡し、どの郵便番号が割り当てられているか割り当てられていないかを追跡します。これは簡単です. ボタンの背景を動的に変更すると、私はうんざりします。
3日間のハッキングの後、次のようなコールバックでJqueryを使用して何かを機能させることができました。
$(".btn").click(function() {
if ( $(this).hasClass ('make-background-white') {
$(this).removeClass('make-background-white');
$(this).addClass ('make-background-green');
} else if ( $(this).hasClass('make-background-green') {
// Remove green, add red
} else if () {
// Remove red, add white
}
}
これにより、ボタンが新しい背景で再描画されるようになり、後で読み取って操作できる「クラス」属性に文字列を格納することで機能します。これは、より単純な Javascript の残りの部分の途中でのコールバックであり、"getElementById()" を使用する他の onClick() ルーチンは、同じ方法で "class" 属性を読み取ったり操作したりできないようです。
Javascript で上記を実行するためのヘルプをいただければ幸いです。