2013-03-28 13 views
11

Występuje problem z uzyskaniem koloru obramowania klikniętego elementu w programie Internet Explorer.Uzyskiwanie koloru obramowania za pomocą jQuery w IE z .css()

$("#clickme").click(function() { 
    alert($(this).css('border-color')); 
}); 

Oto jsfiddle: http://jsfiddle.net/dS7mc/
To działa w Chrome, ale to nie działa w IE10.

Jakieś pomysły na to, jak sprawić, żeby to działało z jednym i drugim? Zmienia się również tylko na "border", w chrome daje mi 2px solid rgb(0, 0, 0), ale w Ie nadal otrzymuję pusty alert.

PS. Tak, próbowałem "borderColor". Również nie działa w IE

+1

@dystroy powiedział, że daje pusty alert –

Odpowiedz

5

Try This ..Works na IE8

$("#clickme").click(function() { 
    $('body').append($(this).css('border-top-color')); 
}); 

enter image description here

jsFiddle

Również Kolory są zwracane przez przeglądarki w inny sposób FireFox , Safari i Chrome zwracają je jako wartości rgb() i IE zwraca je dokładnie tak, jak je ustawiłeś w swoim CSS nawet podczas korzystania z notacji skróconej (#f00 vs #ff0000) i Opera zawsze zwraca kolor jak hexidecimal z 6 cyfr

2

podobny do Mohammada Adil:

$("#clickme").click(function() { 
    var Bcolor = $(this).css("border-left-color"); 
    alert(Bcolor); 
}); 

masz spec każdej drużynie

1

wypróbuj regularne js

var clickme = $("#clickme")[0]; 
    clickme.addEventListener('click', function() { 
    alert(clickme.style.borderColor) 
    }, false) 
+0

Cóż, przykro mi to mówić, ale dostaję pusty alert nawet w Chrome. Możesz spróbować skonfigurować jsfiddle. – Kedor

+0

działa dla mnie lokalnie na chromie i firebugie, ale nie na skrzypcach teraz to dziwne –

5

Dzieje się tak dlatego, że w Internet Explorerze nie ma numeru border-color. Obiekt zostanie zmieniona na obramowania poz -Color:

border-top-color: #000000; 
border-right-color: #000000; 
border-bottom-color: #000000; 
border-left-color: #000000; 

To samo dotyczy border-width i border-style (border-left-width, itd.). Aby wyciągnąć kolor obramowania (zakładając wszystkie 4 są takie same), można użyć:

$(this).css('border-top-color'); 

Równie ciągnąć border-width lub border-style (znowu zakładając wszystkie 4 są równe) chcesz użyć:

$(this).css('border-top-width'); 
$(this).css('border-top-style'); 

można znaleźć styl, który ma właściwości element z F12 narzędzi programistycznych IE:

IE Dev Tools

Powiązane problemy