Я хочу создать что-то, щелкнув изображение внутри элемента div
. Он должен изменить цвет на синий, наряду с изменением цвета фона на синий. Является ли код, который я пишу правильно? Потому что он работает неправильно. Кроме того, есть ли лучший способ применить CSS к элементам?
var photo = $('#photo');
var html = $('html');
var bg = $('#bg');
$(photo).on('click', function(){
$(this).hide()
.delay(600)
.fadeIn(300);
$(html, bg).css({
background :'blue'
});
});
HTML
<div id='bg'>
<img id='photo' src="http://img.pixland.uz/u11878f337693s.jpg" alt="" />
</div>
Вы используете фото как объект jquery, поэтому вам не нужно снова использовать $
for photo или попробовать его,
var photo = '#photo';
var html = 'html';
var bg = '#bg';
$(photo).on('click', function(){
$(this).hide()
.delay(600)
.fadeIn(300);
$(html+','+ bg).css({
// to make multiple selectors into a single one
background :'blue'
});
});
Для получения дополнительной информации см. Несколько селекторов
thank you
$(html+','+ bg)
? Я бы предпочел html.add(bg)
или bg.add(html)
Как и ответ Рохана Кумара, который, конечно, полностью правильный, существует метод объединения jQuery-выборов: $.fn.add
. Вы можете передать элемент HTML, массив элементов, выбор jQuery, селектор jQuery или строку HTML. В этом случае мы могли бы передать один из созданных вами объектов jQuery:
В этом случае вы можете сделать выбор с помощью html.add(bg)
:
var photo = $('#photo');
var html = $('html');
var bg = $('#bg');
photo.on('click', function(){
$(this).hide()
.delay(600)
.fadeIn(300);
html.add(bg).css({
background :'blue'
});
});