Не работает .addClass и .css(a,b). У тега <tr> не меняет свойство.
Вложений: 1
Здравствуйте, столкнулся с проблемой, не могу явой на наведение мыши подсветить строки в таблице, примеры работают и именно на моем сайте не срабатывает.
индекс.html выводится сначала через php echo. Помогите пожалуйста разобраться в чем дело. В firebug заходит в событие и все ок, но цвета не меняет.. (дополнительно см. скриншот) Вот моя таблица: <div class="table"> <table class="mTable"> <tr class="table_head"> <th colspan="3">  Последние добавленные</th> </tr> <tr class="column_caption"> <td>Регион, Населенный пункт </td> <td>Тип товара</td> <td>Цена</td> </tr> <tr class="blue"> <td>/tbtitle0/ </td> <td>/tbtitle1/ </td> <td>/tbtitle2/</td> </tr> <tr> <td>/tbtitle3/ </td> <td>/tbtitle4/ </td> <td>/tbtitle5/</td> </tr> <tr class="blue"> <td>/tbtitle6/</td> <td>/tbtitle7/ </td> <td>/tbtitle8/</td> </tr> <tr> <td>/tbtitle9/</td> <td>/tbtitle10/ </td> <td>/tbtitle11/</td> </tr> <tr class="blue"> <td>/tbtitle12/ </td> <td>/tbtitle13/ </td> <td>/tbtitle14/</td> </tr> <tr> <td>/tbtitle15/ </td> <td>/tbtitle16/ </td> <td>/tbtitle17/</td> </tr> </table> <div class="expand_button"> <!--<a href="./view_new.php"><img src="img/expand_button.png" alt="Раскрыть список"></a>--> <form method="POST" action="./view_new.php"> <input type="image" name="view1" src="img/expand_button.png"> <input type="hidden" name="view" value="1"> </form> </div> </div><!-- end table--> CSS для таблицы style.css .table { padding: 0px; margin: 25px 0 30px 0px; width: 600px; height: 170px; } table, td, th { border: 1px solid #cbccdc; text-align: center; background-color: #f4f4f4; vertical-align: bottom; } table { width: 600px; height: 175px; border-collapse: collapse; } tr.blue td { /* Через строчная раскраска таблицы */ background-color: #e7e3f1; } tr.table_head th { /* Заголовок таблицы */ background-image: url(../img/table_header.jpg); color: #ffffff; text-align: left } другой CSS js.css который через заголовок подключаю: .svet { background-color: #FFFFFF; } И сам код который не срабатывает, jquery. tables.js //debugger; $(document).ready(function() { var tableStr = $('.mTable tr'); tableStr.mouseover(function(){ $(this).addClass('svet'); }); tableStr.mouseout(function(){ $(this).removeClass('svet'); }); }); Заголовки так покдлючаю: <link href="css/style.css" type="text/css" rel="stylesheet"> <link href="css/js.css" type="text/css" rel="stylesheet"> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/tables.js"></script> |
divine108,
.svet { background-color: #FFFFFF; } замените на tr.svet td { background-color: #FFFFFF; } если не поможет есть ещё вариант |
Спасибо! Сработало!
Объясните пожалуйста, в чем дело было..? И я не совсем понял вашу запись, если не сложно можете объяснить? п.с. и еще вопрос по пути, как исключить чтобы первая строка не выделялась? У меня там заголовок :)) |
Цитата:
var tableStr = $('.mTable tr:not(:eq(1))'); Цитата:
$(document).ready(function() { var tableStr = $('.mTable tr'); tableStr.mouseover(function(){ $(this).find('td').css({'background-color': '#FFFFFF'}); }); tableStr.mouseout(function(){ $(this).find('td').css({'background-color': ''});; }); }); |
Ок.
Вот этот код не дает выделить только первую строку первой таблицы, а у меня их три на странице.. debugger; $(document).ready(function() { var tableStr = $('.mTable tr:not(:eq(1))'); tableStr.mouseover(function(){ $(this).addClass('svet'); $(this).css("cursor","pointer"); }); tableStr.mouseout(function(){ $(this).removeClass('svet'); $(this).css("cursor","hand"); }); }); как сделать чтобы у каждой таблицы первую строку не выделяло? п.с. последний вопрос для гуру)), подскажите, мне нужно номер строки ловить для каждой таблицы где кликнули - чтобы потом открыть соответствующую запись этой строке в новом окне ,инфу достаю из БД, как такое лучше реализовать? Вызываться по клику php файл должен, который там уже в шаблон все подставит. |
Цитата:
|
ок.
но я по другому строку ловлю, исключая хедер и первую строку - tableStr.click(function() { if(this.rowIndex+1 >= 3) { alert(this.rowIndex+1); alert(this.nodeName); } }); Так вот.. у меня три таблицы, классы у них одинаковые, единственное только в теге <th> разные названия, в тэйбл хедере то-есть, я смотрю справочник функций, и никак не могу найти, как мне взять тэйбл хедер элемент чтобы проверить оттуда текст - дабы узнать на какой таблице клик произошел.. Подскажите как быть.. как таблицу определить.. |
divine108, при клике на строку будет номер таблицы и номер строки... плюс 1 строка исключена из hover
$(document).ready(function() { var table = $('.mTable'); table.each(function(index) { var table_index = index; var tableStr = $(this).find('tr'); tableStr.each(function(index) { $(this).click (function () {alert([table_index,index])}); }) tableStr = $(this).find('tr:not(:eq(1))'); tableStr.mouseover(function(){ $(this).addClass('svet'); }); tableStr.mouseout(function(){ $(this).removeClass('svet'); }); }); }); |
Ого! Исчерпывающе! Спасибо большое!
|
Добрый всем вечер!
Возникла такой вопрос, как можно реализовать проверку наличия текста в строке? У меня получается клик и фокус ловятся для каждой строки, но там где в шаблон пхп не подставил текст, то-есть нет больше записей нужно чтобы не фокус не клик не срабатывали.. Используется все тот же код что выше. Помогите пожалуйста этот вопрос решить. И еще вопрос попутно, при фокусе над строкой если указатель находится над текстом - то он принимает форму каретки, хотя клик работает исправно, как сделать чтобы он всегда был одного вида? debugger; $(document).ready(function() { var table = $('.rTable'); var tableStr = table.find('tr'); tableStr.each(function(index) { $(this).click (function () {alert(index) window.location.href = "http://mysite.loc/details.php?T=" + "3" + "&R=" + index; }); tableStr = $(this).find('tr:not(:eq(1))'); tableStr.mouseover(function(){ $(this).addClass('svet'); $(this).css("cursor","hand"); }); tableStr.mouseout(function(){ $(this).removeClass('svet'); $(this).css("cursor","hand"); }); }); }); |
Часовой пояс GMT +3, время: 00:27. |