Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Доступ к CSS параметру (https://javascript.ru/forum/jquery/33163-dostup-k-css-parametru.html)

skeef 12.11.2012 14:35

Доступ к CSS параметру
 
Всем привет!
Есть обычная таблица. Делаю раскраску этой таблицы пользователем, в данном случае изменение цвета подсветки строки.
CSS:
Код:

.bg-sel-simple td {
  background-color: #D1E6FF;            /* s15 */
}

Подсветка строки:
$( "#mtable>tbody>tr" ).hover(
     function () {
	$( this ).addClass("bg-sel-simple" );
     },
     function () {
	$( this ).removeClass( "bg-sel-simple" );
     } );

Меняю цвет:
$( '#s15set' ).ColorPicker( {
                              . . . . .
    onChange:function ( hsb, hex, rgb ) {
	$( '#s15' ).css( 'backgroundColor', '#' + hex );
        $( '.bg-sel-simple' ).css( 'backgroundColor', '#' + hex );
   }
} );

Не меняется параметр background-color CSS класса .bg-sel-simple, хотя проверочный DIV с id s15 цвет исправно меняет.
Вариант таблицы CSS без TD
Код:

.bg-sel-simple {
  background-color: #D1E6FF;            /* s15 */
}

Не прокатывает, потому что в реальной таблице каждый TD имеет свой класс, установленный ранее. Т.е. не происходит подсветка строки.
Помогите выйти из тупика, плз :write:

melky 12.11.2012 16:34

Цитата:

Сообщение от skeef
Не меняется параметр background-color CSS класса

не класса, а элементов с таким классом.

skeef 12.11.2012 17:03

Цитата:

Сообщение от melky (Сообщение 215629)
не класса, а элементов с таким классом.

Пусть так, только тогда уже не элементов класса, а дочерних элементов (TD), родителям которых (TR) присвоен этот класс.

Как решить проблему - вот в чем вопрос ...

melky 12.11.2012 18:04

Цитата:

Сообщение от skeef
Как решить проблему - вот в чем вопрос ...

если надо именно лазить в таблице стилей, то это нестабильно - не будет работать, если css файл будет подключаться с чужого домена. лучше собирать элементы в коллекцию, и менять стиль им.

поменять стиль правила в таблице можно так :

<style>
.bg-sel-simple td {
  background-color: #D1E6FF;            /* s15 */
}
</style>
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script>
$.each(document.styleSheets, function () {
    $.each(this.rules || this.cssRules, function () {
        alert( this.selectorText );
        alert( this.style.cssText );
    });
});
</script>


свойство style у правила точно такое же, как у элемента.

skeef 12.11.2012 19:32

ухх чета сложно ... пошел курить - спасибо :)


Часовой пояс GMT +3, время: 01:16.