2017-10-08 117 views
0

整個行我有HTML表這樣的(由工具生成的自):突出鼠標懸停表

  1. 我無法突出使用jQuery
  2. 我想實現,如果我點擊整個行一個單元格需要突出顯示,我移動到其他單元格時不需要突出顯示。

下面是我的表,但它實際上與TD開始,因爲其他表元素的一部分/內:

<td class="PTChildPivotTable"> 
<table tabindex="0" id="saw_437_c" cellspacing="0"> 
<tbody> 
<tr> 
<td class="TTHC OOLT" id="id1" style="font-family:Arial;font-size:16px;font-style:italic;font-weight:normal;">XYZ</td> 
<td class="TTHC PTLC OOLT" id="id2" style="font-family:Arial-Italic;font-size:16px;font-style:normal;font-weight:normal;">PQR</td> 
</tr> 
<tr> 
<td class="TTHC OOLT" id="id3" style="font-family:Arial;font-size:16px;font-style:italic;font-weight:normal;">XYZ2</td> 
<td class="TTHC PTLC OOLT" id="id4" style="font-family:Arial-Italic;font-size:16px;font-style:normal;font-weight:normal;">PQR2</td> 
</tr> 
</tbody></table> 
</td> 

我想下面的jQuery代碼,它並突出一個排的一個山坳但不整個行而懸停:

<style style="text/css"> 
     /* Define the hover highlight color for the table row */ 
     .PTChildPivotTable td:hover { 
       background-color: #ffff99; 
     } 

     .PTChildPivotTable tr:hover { 
       background-color: #ff0000; 
     } 

    </style> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 

<script> 

$("td").on("click", function() { 
     $(this).css({ 
      "background-color": "#0093e0", 
      "border": "10px" 
     }); 
     }); 

    </script> 
  1. 的想法是,一旦我mousehover一行整個<tr>應該強調的是2個TD值XYZ ,PQR。當我懸停到下一行XYZ2時,需要突出顯示PQR2。在我的代碼中,一次只能顯示一個值。
  2. 第二個要求是,如果我點擊XYZ,它的背景顏色需要是藍色的(#0093e0)。當我點擊PQR時,先前的XYZ需要是白色的,但是PQR需要是藍色的並且在其他單元格中具有相同的行爲。
+0

要求不明確的,請詳細說明正常。 –

回答

1

這是你想要的嗎?

CSS

.PTChildPivotTable tr:hover { 
    background-color: #ff0000 !important; 
} 

.PTChildPivotTable td.clicked { 
    background-color: #0093e0 !important; 
    border: 10px !important; 
} 

JQUERY

$(".PTChildPivotTable td").on("click", function() { 
    $(".PTChildPivotTable td").removeClass('clicked') 
    $(this).toggleClass('clicked'); 
}); 

這裏有一個小提琴https://fiddle.jshell.net/rigobauer/8bp2xokc/

你不提它,但我猜你會需要以便能夠取消選中突出顯示的td再次點擊它。否則,你總是會選擇一個單元格。如果是這樣的情況下,只是改變了jQuery一點點......

$(".PTChildPivotTable td").on("click", function() { 
    $(".PTChildPivotTable td").not(this).removeClass('clicked'); 
    $(this).toggleClass('clicked'); 
}); 

我希望它能幫助

+0

a-iglesias - 您的答案在jfiddle中完美地運行良好。我面臨的挑戰是如何適應已有的工具生成代碼並在其上進行自定義更改......我沒有設計表格,而是將其從工具中拉出來。不知何故,工具不允許我在tr:hover上使用diff顏色,但僅在td:hover ..上導致一次只有一個單元格突出顯示,而不是完整的行:-(此外,toggleclass在jfiddle中工作良好,但我無法完成工作。 – pauldx

+0

a-iglesias - 你知道嗎?我不想要rgb(156,172,201),而是用自己的顏色替換爲「#0093e0」 XYZ – pauldx

+0

關於懸停行問題,也許你有更多的CSS樣式優先於你在這裏定義的樣式,試試用'!important'(我編輯過這個問題) –