Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Применить ко всем элементам кроме текущего. (https://javascript.ru/forum/jquery/38452-primenit-ko-vsem-ehlementam-krome-tekushhego.html)

Dimaz 02.06.2013 16:02

Применить ко всем элементам кроме текущего.
 
Всем привет! Написал такой код. Почему он начинает считать индекс с первого элемента на странице, а не с первого параграфа? До параграфа идет тег b. Так вот он его тоже считает. http://jsfiddle.net/meaJK/
$('p').click(function(){
    alert($(this).index());
for(var i=0,a=$(this).index(); i<3; i++){
    if(i==a){continue}
$('p.hand:eq('+i+')').css("color","red");
}
});

Dimaz 02.06.2013 16:09

Вопрос закрыт, нашел решение. Нужно было указать селектор параграфа и добавить параметр this в метод index().
a=$('p').index(this);

melky 02.06.2013 16:12

зачем тут цикл и проверки? это все есть в JQ

$('p').click(function() {
    $('p').not(this).css('color', 'red');
});


http://jsfiddle.net/meaJK/2/

Dimaz 02.06.2013 16:18

Цитата:

Сообщение от melky (Сообщение 254097)
зачем тут цикл и проверки? это все есть в JQ

$('p').click(function() {
    $('p').not(this).css('color', 'red');
});


http://jsfiddle.net/meaJK/2/

Спасибо большое! Искал решение на jquery, не нашел. Еще раз большое спасибо!:)

Dimaz 02.06.2013 16:30

Еще вопросик. А как сделать, чтобы, если уже свойство было применено, при повторном нажатии ничего не происходило? Только метод one не предлагать. Так как данные на страницу загружаются динамически ajax-запросом. Следовательно обработчик не обновится.
Еще. Проверять определен ли атрибут style не подойдет. Так как он уже определен до этого, только с другим цветом.

melky 02.06.2013 16:59

Цитата:

Сообщение от Dimaz (Сообщение 254099)
Еще вопросик. А как сделать, чтобы, если уже свойство было применено, при повторном нажатии ничего не происходило? Только метод one не предлагать. Так как данные на страницу загружаются динамически ajax-запросом. Следовательно обработчик не обновится.
Еще. Проверять определен ли атрибут style не подойдет. Так как он уже определен до этого, только с другим цветом.

делать отдельный CSS класс для цвета и выносить все стили в CSS

Dimaz 02.06.2013 17:19

Цитата:

делать отдельный CSS класс для цвета и выносить все стили в CSS
Так это нужно будет по всем параграфам проходить, проверять есть ли атрибут. Заранее ведь не известно у каких стоит. Может метку какую-нибудь можно поставить, что свойства были применены. Например в div в котором они находятся. Только в виде чего эту метку сделать?

melky 02.06.2013 17:47

Цитата:

Сообщение от Dimaz (Сообщение 254105)
Так это нужно будет по всем параграфам проходить, проверять есть ли атрибут. Заранее ведь не известно у каких стоит. Может метку какую-нибудь можно поставить, что свойства были применены. Например в div в котором они находятся. Только в виде чего эту метку сделать?

можно родителю класс дать (или атрибут) .. или вообще на него делегирующий обработчик клика повесить, чтобы искать параграфы только в этом div'е


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