2011-05-23 253 views
20

我有一個div,具有特定樣式(假設某個背景)。jquery更改div的樣式點擊

我要的是,當一個點擊列表元素上有如果在不同的元素另一區域屬於該div該div應用的另一個特定的樣式(另一種背景類型)被應用到該分區,

被點擊,樣式不應該改變。

是否有可能使用jQuery?謝謝!

編輯:(我的功能做一些其他的事情也不過改變顏色沒有按;因爲我想將不起作用它改變了所有的項目我點擊,背景不是隻有最後點擊。)

$(document).ready(function() { 
    $('.product_types > li').click(function() { 
     $(this) 
     .css('backgroundColor','#EE178C') 
     .siblings() 
     .css('backgroundColor','#ffffff'); 

     $('#submit_button').removeAttr('disabled'); 
     $('#number').removeAttr('disabled'); 
    }); 
}); 
+0

如果我想更改與jQuery所述特定的部門運行風格/ CSS參考? – 2012-08-16 07:52:01

回答

29

至於我有什麼理解你的問題,這是你想要的。

這裏的低於jsFiddle

$('.childDiv').click(function() { 
 
    $(this).parent().find('.childDiv').css('background-color', '#ffffff'); 
 
    $(this).css('background-color', '#ff0000'); 
 
});
.parentDiv { 
 
    border: 1px solid black; 
 
    padding: 10px; 
 
    width: 80px; 
 
    margin: 5px; 
 
    display: relative; 
 
} 
 
.childDiv { 
 
    border: 1px solid blue; 
 
    height: 50px; 
 
    margin: 10px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script> 
 
<div id="divParent1" class="parentDiv"> 
 
    Group 1 
 
    <div id="child1" class="childDiv"> 
 
    Child 1 
 
    </div> 
 
    <div id="child2" class="childDiv"> 
 
    Child 2 
 
    </div> 
 
</div> 
 
<div id="divParent2" class="parentDiv"> 
 
    Group 2 
 
    <div id="child1" class="childDiv"> 
 
    Child 1 
 
    </div> 
 
    <div id="child2" class="childDiv"> 
 
    Child 2 
 
    </div> 
 
</div>

+2

改進建議: 使用jquery兄弟姐妹() http://jsfiddle.net/P5DCg/1/ – Guy 2011-05-24 03:05:25

+0

@dana:你的歡迎:)也看看@Guy的建議應該好多了 – 2011-05-24 08:38:51

+0

@夥計 - 我已經試過你的代碼,但它適用於我點擊的每個html元素的這種樣式,並且我希望它只適用於最後一個。任何想法爲什麼?非常感謝 – dana 2011-05-24 10:09:07

0
$(document).ready(function() { 
    $('#div_one').bind('click', function() { 
    $('#div_two').addClass('large'); 
    }); 
}); 

如果我理解你的問題。

或者你也可以直接修改CSS:

var $speech = $('div.speech'); 
var currentSize = $speech.css('fontSize'); 
$speech.css('fontSize', '10px'); 
0

哎德納, 如果我正確理解你想通過點擊一個UL列表中的項目更改元素的CSS樣式。我對嗎?

HTML:

<div class="results" style="background-color:Red;"> 
</div> 

<ul class="colors-list"> 
    <li>Red</li> 
    <li>Blue</li> 
    <li>#ffee99</li> 
</ul> 

jQuery的

$('.colors-list li').click(function(e){ 
    var color = $(this).text(); 
    $('.results').css('background-color',color); 
}); 

注意jQuery可使用addClass,removeClass和toggleClass如果你想使用類,而不是內聯樣式。這意味着你可以這樣做:

$('.results').addClass('selected'); 

並在css中定義'selected'樣式。

工作示例: http://jsfiddle.net/uuJmP/