Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.05.2010, 12:58
Аспирант
Отправить личное сообщение для DorianLeroy Посмотреть профиль Найти все сообщения от DorianLeroy
 
Регистрация: 05.05.2010
Сообщений: 36

Запутался с выборкой класса
Занимаюсь по книжке. Есть примерчик , где объявляются переменные с селекторами:
var target = '.bigLink';
var hoverClass = 'hoverBigLink';
Классы объявлены как обычно.
Не понятно почему target идёт с точкой перед селктором, а hoverClass без...
Ответить с цитированием
  #2 (permalink)  
Старый 05.05.2010, 13:06
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

<telepate_mode>
target — слектор css, а hoverClass — кусок свойства .className
</telepate_mode>
Ответить с цитированием
  #3 (permalink)  
Старый 05.05.2010, 13:34
Аспирант
Отправить личное сообщение для DorianLeroy Посмотреть профиль Найти все сообщения от DorianLeroy
 
Регистрация: 05.05.2010
Сообщений: 36

Всё равно не понял.

Вот функция

$(target).each(function(){
$(this).hover(
function() { $(this).addClass(hoverClass);
status = $(this).find('a').attr('href');},
function() { $(this).removeClass(hoverClass);
status = ' ';
а вот стили:
.bigLink {
background: #F5F5D3;}

.hoverBigLink {
background: url(../images/flames.png) no-repeat right top;
}
Что значит кусок свойства?
Ответить с цитированием
  #4 (permalink)  
Старый 05.05.2010, 14:15
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Пожалуйста, форматируйте свой код! (http://javascript.ru/formatting)

У элемента может быть установлен аттрибут class, который (ввиду зарезервированности слова) преобразуется в свойство .className.

В этом аттрибуте может содержаться любой текст — значение свойства.

Далее выборка производится по селектору, по синтаксису напоминающему на css-ный.
$(".my-class-name")

Если в тексте, содержащемся в аттрибуте class, будучи разделенным по проблельным символам, встречается "my-class-name", то элемент соответствует выборке.

При этом точка — это конструкция селектора. Функционально вышеприведенный код такой же, как и эти два:
$("*.my-class-name");
$("*[class~=my-class-name]")


Например,
<div class="foo bar my-class-name baz"></div> <!-- будет выбран -->
<div class="foo bar baz"></div> <!-- не будет выбран -->


Таким образом, у каждого элемента могут быть своего рода «метки», не зависящие друг от друга, но от которых сильно зависит поведение элемента. Было бы удобно менять их независимо, а не работать со значением аттрибута как со строкой. Для этого и используются методы addClass и removeClass.

Например,
$(…).attr("class", "foo bar"); // теперь у элемента два «класса», foo и bar;
$(…).addClass("baz"); // а теперь — три: foo, bar и baz;
$(".foo.bar.baz"); // но выборка производится все равно, с точкой, потому что это конструкция языка в селекторе
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
измененить свойство базового класса nikolaich ExtJS 11 06.07.2010 16:50
Присвоение класса элементу с заранее неизвестным ID why.not? Events/DOM/Window 3 01.03.2010 04:47
Добавление класса на елемент по id при фокусе на input Andrew_tl Events/DOM/Window 1 18.02.2010 19:09
Немогу поставить условие, запутался nemo Серверные языки и технологии 1 30.01.2010 14:18
Изменение класса Aurica jQuery 4 11.08.2009 13:35