Форум hotibo.ru

Сайты - по стандартам, но не стандартные сайты!






#1 27.02.2012 12:32

tapazukk
Опытный
Зарегистрирован: 16.01.2010
Сообщений: 349
Вебсайт

наследственность jQuery

Как сделать так, что при клике на ссылку менялся цвет и body и всех ссылок в документе (или родителе)
Сейчас делаю так:

Код:

 $('a.black').click(function(){
                    $('body').css({
                        color: "#fff",
                        background: "#000"
                    });
                });
                $('a.black').click(function(){
                    $('a').css({
                        color: "#fff",
                   });
                });

Получается как то гомоздко, есть другие варианты?

Отредактированно tapazukk (27.02.2012 12:34)

Нет на форуме

 

#2 01.03.2012 03:27

MT
Опытный
Откуда: Moscow
Зарегистрирован: 23.11.2009
Сообщений: 241
Вебсайт

Re: наследственность jQuery

Наверное, просто назначить BODY класс, к которому уже привязаны любые нужные стили для любых элементов. ;-)


блог | музыка | браузер

Нет на форуме

 

#3 01.03.2012 12:19

tapazukk
Опытный
Зарегистрирован: 16.01.2010
Сообщений: 349
Вебсайт

Re: наследственность jQuery

как вариант smile

Нет на форуме

 

#4 18.03.2012 19:25

KidsKilla
Новичок
Зарегистрирован: 09.06.2010
Сообщений: 8

Re: наследственность jQuery

$('a.black').click(function(){
$('body').css({color: "#fff",background: "#000"})
.find('a').css({color: "#fff",});
});

Нет на форуме

 

#5 20.03.2012 18:45

Octane
Опытный
Откуда: Волгоград
Зарегистрирован: 05.03.2012
Сообщений: 220
Вебсайт

Re: наследственность jQuery

хм, а как же псевдоклассы ссылок?
более правильно будет сделать так

CSS:

Код:

body {
background: #fff;
}
a:link, a:visited {
color: #000;
}
.invert {
background: #000;
}
.invert a:link, .invert a:visited {
color: #fff;
}

JavaScript:

Код:

$(document).ready(function(){
    $('#black').click(function(){
        $('body').attr('class') = 'invert';
    });
});

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

Отредактированно Octane (20.03.2012 18:51)


javascript framework

Нет на форуме

 

#6 20.03.2012 20:24

KidsKilla
Новичок
Зарегистрирован: 09.06.2010
Сообщений: 8

Re: наследственность jQuery

1 но:

Код:

$(document).ready(function(){
    $('#black').click(function(){
        $('body').addClass('invert'); // или toggleClass
    });
});

Нет на форуме

 

#7 28.10.2013 15:37

Xexe
Новичок
Зарегистрирован: 03.03.2012
Сообщений: 28

Re: наследственность jQuery

Кстати, возможно это мои кривые руки, но.
К примеру есть код


   
content



и есть ксс

.myDiv {
  myDivStyles
}

.myDiv.jsAddClass{
    myDiv.jsAddClassStyles
}

.myDiv .strangeDiv{
    strangeDivStyles
}

.myDiv.jsAddClass .strangeDiv{
   jsAddClass strangeDivStyles
}

ну так вот. Во всех браузерах работает как ожидалось: добавляется класс - переопределяются свойства для myDiv и strangeDiv, но ие6 переопределяет только myDiv, а дальше дерево не смотрит и не перерисовывает.
Скажу сразу в JS я как кот в воде. Возможно это очень глупый вопрос.

Нет на форуме

 

#8 28.10.2013 16:16

Octane
Опытный
Откуда: Волгоград
Зарегистрирован: 05.03.2012
Сообщений: 220
Вебсайт

Re: наследственность jQuery

Xexe написал:

Код:

.myDiv.jsAddClass

Для чего это?


javascript framework

Нет на форуме

 

#9 29.10.2013 12:38

Xexe
Новичок
Зарегистрирован: 03.03.2012
Сообщений: 28

Re: наследственность jQuery

ну у нас есть блок, у которого есть обычные стили. Эти стили (не все) меняются при неком событии. Поэтому ему дописываем класс скриптом и этому классу дополнительные или измененные стили. Кроме того у него есть дочерний или просто потомок, который тоже изменяется при этом же событии.

Нет на форуме

 

Board footer