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

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

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

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

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

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

Ответы

Ответ 1

У 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');
});

Ответ 2

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

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

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

Ответ 3

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

$(document).ready(function(){

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

});

demo: http://jsbin.com/aciqi/

Ответ 4

 $('#RowID').children('td, th').css('background-color','yellow');

Ответ 5

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

Пример

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

или

$("#myTable tr").click(function() {
    $(this).addClass('selected');
});

Ответ 6

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

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

Ответ 7

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