前提・実現したいこと
やりたいことは、以下2つです。
①テーブル行をクリックした時に背景色を変更したい
②マウスオーバーした時に背景色を変更したい
※①、②の背景色は別です。(例:①⇒赤色、②⇒青色)
例えばテーブル行(1行)をクリックした場合、①の背景色に変更されていると思うのですが、マウスアウト・マウスオーバーしても②の背景色に変更しない仕様にしたいです。
発生している問題・エラーメッセージ
現状、クリックした行の背景色の変更まではできています。
これにたいして、マウスオーバーの処理を加えようとすると上手くいきません。
aspx
1<asp:Panel ID="Pnl_tabledata" runat="server" ClientIDMode="Static" ></asp:Panel>
HTML
1<div id="Pnl_tabledata"></div>
css
1#tbl_data { 2 width:502px; 3 height:35px; 4} 5 6#tbl_data:hover 7{ 8 cursor:pointer; 9 background-color:#e0ffff; 10}
javascript
1$(function () { 2 //テーブル表示 3 Scr_tableData(); 4 5 //背景色変更 6 tr_default(".data-href"); 7 $(".data-href td").click(function () { 8 tr_default(".data-href"); 9 tr_click($(this)); 10 }); 11}); 12 13//テーブル作成 14function Scr_tableData() { 15 var panel = $("#Pnl_tabledata"); 16 var array = ["Apple", "Orange", "Grape"]; 17 var base = $('<table class="list_tbl">'); 18 //取得内容をセット 19 $.each(array, function (index,val) { 20 var htmlstr = '' 21 htmlstr = htmlstr 22 + ' <tr class="data-href">' 23 + ' <td class="data-href" id=tbl_data>' + val + '</td>' 24 + ' </tr>' 25 base.append(htmlstr); 26 }); 27 panel.append(base); 28} 29 30//背景色変更 31function tr_default(tblID) { 32 var vTR = tblID + " td"; 33 $(vTR).css("background-color", "#ffffff"); 34 $(vTR).mouseout(function () { 35 $(this).css("background-color", "#ffffff") 36 }); 37} 38 39function tr_click(trID) { 40 trID.css("background-color", "#00bfff"); 41 trID.mouseout(function () { 42 trID.css("background-color", "#00bfff") 43 }); 44} 45
上記を実行した場合(矢印はマウスポインターです)
初期表示の段階ではCSSのhoverで背景色が変更できていると思われます。
テーブル行をクリックしたときの背景色の変更はできています。
しかし一回でもテーブル行をクリックしてしまうとcssのhoverが効かなくなってしまいます。図以外の行(Grape)にカーソルを持っていっても同様です。
この時、再びクリックした行(Apple)にカーソルを持って行ったときに背景色を変更しないようにしたいです。
補足情報(FW/ツールのバージョンなど)
https://lilia-study.com/web/jquery/sample/tr_background_color.html
こちらのURLを参考に少し変更を加えて記述しました。
こちらのサイトの場合、クリックした行もマウスを置くと背景色が変わっています。これを変わらない仕様にしたいです。
宜しくお願いします。
追記:Microsoft Visual Studio 2010
.NET Framework 4
ASP.Net Web Forms



回答1件
あなたの回答
tips
プレビュー