2011-05-23 15 views
20

Belirli bir stile sahip bir div'um var (belli bir arka plana bakalım). biri farklı bir elemanda başka bir alan bu div ait ise o div (başka arka plan tipi) bu div uygulanacak başka özel stil,jquery click stilini bir div ile değiştir

uygulanan sahip bir liste öğesini tıkladığında

İstediğim olduğunu tıklandığında stil değişmemelidir.

JQuery kullanarak mı mümkün? teşekkür ederim!

Düzenleme: (benim fonksiyonu da başka şeyler yapar ama değişen renk değil; ı istediğiniz gibi çalışamam bu i tıklayın tüm öğelerin arka planını değiştirir sadece son tıkladım...)

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

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

Ne JQuery ile perticular bölünme çalışma zamanı için stil/css başvurusunu değiştirmek isterseniz? –

cevap

29

Ben sorunuza anlıyorum ne var, bu ne istediğini gibi. İşte

altında bir jsFiddle geçerli:

$('.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

bir iyileştirme önerisi: jquery kardeşlerini kullanın() http://jsfiddle.net/P5DCg/1/ – Guy

+0

@dana: hoşgeldiniz :) 'in önerisine de bir bakın: @Guy daha iyi olmalı –

+0

@ Guy - kodunuzu denedim, ancak bu stili, tıkladığım her html öğesine yönlendiririm ve sadece sonuncuya uygulamak istiyorum. herhangi bir fikir neden? – dana

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

Sorunu anladım.

Veya doğrudan css değiştirebilirsiniz:

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

hey Dana, sana bir ül listesindeki bir öğeyi tıklayarak bir elemanın css stilini değiştirmek istediğiniz doğru anlamak. haklı mıyım

html:

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

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

jquery Bunun yerine satır içi stil daha sınıflarını kullanmak isterseniz jQuery addClass, removeClass ve toggleClass kullanabileceği

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

Not.

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

Ve css 'seçilen' stil tanımlamak: Bu böyle bir şey yapmak anlamına gelir.

çalışma örneği: http://jsfiddle.net/uuJmP/