2014-05-25 176 views
0

我想创建一些东西,当点击div元素内的图像。它应该将其颜色更改为蓝色,并将背景颜色更改为蓝色。我写的代码是否正确?因为它不能正常工作。另外,有没有更好的方法来将CSS应用到元素上?jQuery的CSS属性选择

FIDDLE

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> 
+0

的可能重复[如何运行两个jQuery的动画同时?](http://stackoverflow.com/questions/1251300/how-to-run-two-jquery-animations-simultaneously) – Vucko

+0

看到这个工作正常http://jsfiddle.net/Fagc9/1/ –

+0

@ ShekharPankaj不工作!!!! – Tukhsanov

回答

2

您正在使用照片作为jQuery对象所以没有必要再使用照片中的$,或尝试像,

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' 
    }); 
}); 

请参考multiple-selectors更多细节

Live Demo

+0

谢谢@Rohan Kumar这是我需要的人不理解我。 '谢谢' – Tukhsanov

+1

'$(html +','+ bg)'?我更喜欢'html.add(bg)'或'bg.add(html)' – Popnoodles

3

除了Rohan Kumar's answer,这当然是正确的全部,有用于组合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' 
    }); 
}); 

jsFiddle