Подскажите, плз, по выборке
Подскажите, плз, почему не работает :help:
$('a[class$=header]') Вроде простой код, который должен выбирать ссылки с классами, название которых заканчивается на header. А-н не работает :-? |
Бред. Так ищется ссылка, атрибут class которой заканчивается на header. Вы уверены, что такие классы -- в конце строки? Вряд ли.
Предлагаю пересмотреть код, и искать так: $('a').filter('.aheader, .bheader, ..., .zheader') |
Цитата:
У меня есть ссылки с классами "header","header up" и "header down". Мне надо выбрать только те, что "header", а "header up" и "header down" не выбирать. |
Значит, у Вас так:
<a class="header" >1</a> <a class="header up" >2</a> <a class="header down" >3</a> Вы делаете выборку по ссылкам, у которых атрибут class заканчивается на header. Покажите мне, сколько ссылок тут подходят под это описание |
названия классов не могут содержать пробел
http://www.w3.org/TR/html401/struct/...tml#adef-class |
Но несколько имен перечисляются через пробел.
|
совершенно верно. Названия классов не могут содержать пробел. В данном случае у элементов с class="header up" два класса header и up. Мне же надо выбрать элементы, у кот класс ТОЛЬКО header.
Цитата:
Вопрос в другом. КАК выбрать элементы, у кот класс ТОЛЬКО header. Неужели ни кто не сталкивался с такой задачей :) |
Цитата:
Цитата:
|
Цитата:
Цитата:
|
Цитата:
|
не в номинации "это удобно, а никто не знает" я оваций точно не получу.
Ну тогда так (постараюсь не напутать ни чего) Есть табличка, к ней подключен джикверевский модуль сортировки. $("#myTable").tablesorter({ headers: { 3: { sorter: false }, 4: { sorter: false }, 6: { sorter: false } } }); все столбцы имеют стиль "header" по умолчанию. Когда же выбран какой либо столбец то к его стилю прибавляется "up" или "down". Я задумал сделать еще подмену фона при наведении мышки. $('.mainTable th.header').hover( function () { $(this).css('background-color', '#8dbdd8'); }, function () { $(this).css('background-color', '#e6eeee'); } ); Все просто. Но есть одно НО. Когда столбец выбран для сортировки, то есть его класс "header up" или "header down" надо чтобы фон при наведении мыши на него НЕ менялся. То есть надо, чтобы вместо $('.mainTable th.header') выбирались только те элементы, у кот класс ТОЛЬКО header. Вот ) $('a[class=header]') как то странно работает. По умолчанию сортировка сделана по дате и при на ведении на ней мышки фон не меняется. Вроде все ок. Но если кликнуть на один из столбцов, то на новом столбце для сортировки по прежнему остается подмена фона. |
live?
|
Цитата:
$('.mainTable th.header:not(.up, .down)') |
изменил код на
$('.mainTable th.header:not(.headerSortDown, .headerSortUp)').hover( function () { $(this).css('background-color', '#8dbdd8'); }, function () { $(this).css('background-color', '#e6eeee'); } ); но работает криво. То есть при загрузки обработчик события только на элементы с классом header вешается. После того как одному из элементов добавляется класс headerSortDown, обработчик с него не убирается. |
Логично, не находите? ;)
Обработчик вешается не на некую абстрактную "динамическую коллекцию", а на вполне конкретный набор элементов. Либо копайте в сторону live, либо как-то так: $('.mainTable th.header').hover( function () { $(this).not('.headerSortDown, .headerSortUp').css('background-color', '#8dbdd8'); }, function () { $(this).not('.headerSortDown, .headerSortUp').css('background-color', '#e6eeee'); } ); |
О ))) Спасибо. Получилось. Попробую теперь с Live разобраться.
|
Часовой пояс GMT +3, время: 19:55. |