2010-08-21 20 views
7

CSS: .divIm { border:1px solid red; } ve var borderColor = $(this).css("border-color") kod satırında "" döndürür. Yanlış olan ne? Ya da jQuery kullanırsam, hesaplanmış stil elde etmeye çalışmak doğru olur mu?jQuery.css(), kenarlık rengini, kırmızı

Güncelleme: Aşağıda beklendiği gibi çalışmak istemeyen bir kod.

$("div.divIm").mouseover(function() { 
    var borderColor = $(this).css("border-color"); 
    debugger; 
}); 

cevap

10

Dört kenarlığın her biri farklı bir renge sahip olabileceğinden, .css('border-color') çalışmaz, hangi rengin döndüğü (hepsi aynı olsa bile). Vakaların çoğunda

, tüm sınırların renk aynıdır, bu nedenle böyle yapabilirsiniz:

Yani
$('div.divIm').mouseover(function() { 
    var borderColor = $(this).css('border-left-color'); 
    debugger; 
}); 

sol sınırının rengini almak ve bunun için yeterli olmalı senin ihtiyacı vardır.

+0

Tavsiye için teşekkürler, yardımcı olur! – despero

-1
var borderColor = $(this).css("border-color") 

Sen daha fazlasını göstermek gerekir. Ama eğer sahip olduğunuz tek şey bu ise sorun this'un tanımlanmamış olmasıdır.

var borderColor = $('.divIm').css("border-color"); 

İhtiyacınız olan şey bu olacaktır.

+0

$ ("div.divIm") fare üzerinde (fonksiyonu() { var borderColor = $ ("divIm. ") CSS (" sınır renkli."); ayıklayıcı; }.); Önerdiğiniz gibi denedim ama sorun çözülmedi. $ (this) doğru bir nesneyi döndürür. Başka bir yol olabilir mi? – despero

+0

Bu durumda bu işlevi kullanabilirsiniz. Gert'in – Galen

+0

önerdiği gibi sınır-renk yerine borderColor kullanmayı deneyin. Dave doğru cevap verdi. – despero

2

Hesaplanan stili, birden çok hesaplanmış stil dahil olmak üzere curStyles jQuery Plugin ile alabilirsiniz.

+1

Cevabınız için teşekkür ederiz; eklentiyi kullanarak sorun için çok ağır görünüyor. Olsa da haklı olabilirsin. – despero

+0

jQuery, istenen stil özelliği öğeye ayarlanmamışsa hesaplanan stili döndürür. Belgelenmemiş bir yöntem olan * $ curCSS (elem, stil, force) * kullanır. –

İlgili konular