Изменить цвет фона - PullRequest
       7

Изменить цвет фона

17 голосов
/ 30 ноября 2009

У меня есть что-то вроде этого:

<tr id='<%=currentRow %>' onclick="SetBackgroundColor(this)" style="background-color:Yellow">

Когда я нажимаю на строку, я хочу изменить цвет фона, и я сделал это так:

function SetBackgroundColor(rowId) 
{
     $(rowId).css("background-color", "#000000");
}

но я не знаю, почему это не работает. Любые предложения, пожалуйста?

Ответы [ 7 ]

33 голосов
/ 30 ноября 2009

IE имеет проблему с фоновыми цветами для элемента TR. Более безопасный способ - установить фон для TD и TH внутри TR:

<table id="tabletest">
    <tr>
        <td>testcell</td>
    </tr>
</table>

<script>
$('#tabletest tr').bind('click', function(e) {
    $(e.currentTarget).children('td, th').css('background-color','#000');
})
</script>

Добавлено: вы можете назначить один обработчик событий для всей таблицы, чтобы повысить производительность:

$('#tabletest').bind('click', function(e) {
    $(e.target).closest('tr').children('td,th').css('background-color','#000');
});
9 голосов
/ 30 ноября 2009

В jQuery вам не нужно использовать атрибут onclick для назначения обработчика событий. Допустим, вы добавляете класс с именем mytr к каждому tr, на который вы хотите повлиять. Тогда вы можете сделать что-то вроде этого:

 $(document).ready(function(){
        $(".mytr").click(function(){
             $(this).css("background-color", "#000000");
        });
 });

И это будет применять обработчик событий ко всем строкам с классом mytr.

6 голосов
/ 01 декабря 2009

Это сбросит каждую строку при нажатии новой ...

$(document).ready(function(){

  $('tr').click(function(){
    $('tr td').css({ 'background-color' : 'green'});
    $('td', this).css({ 'background-color' : 'red' });
  }); 

});

демо: http://jsbin.com/aciqi/

2 голосов
/ 07 июля 2015
 $('#RowID').children('td, th').css('background-color','yellow');
1 голос
/ 30 ноября 2009

Более простое решение - возможно использовать селектор для всех строк в таблице или в addClass.

Пример

$("#myTable tr").click(function() {
    $(this).css('background-color', '#f00');
});

или

$("#myTable tr").click(function() {
    $(this).addClass('selected');
});
0 голосов
/ 01 декабря 2009

Спасибо всем .. проблема была в том, что на главной странице я загружал j query-1.3.2.min.js before query-1.3.2-vsdoc.js, и вот так он не работал .. спасибо еще раз

0 голосов
/ 30 ноября 2009

Вместо изменения цвета фона строки таблицы, попробуйте изменить цвет фона ячейки таблицы.

$(document).ready(function() {
    $(".mytr td").click(function() {
         $(this).css("background-color", "#000000");
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...