2013-03-28 9 views
11

Si è verificato un problema relativo al colore del bordo dell'elemento su cui è stato fatto clic in Internet Explorer.Ottieni il colore del bordo con jQuery in IE con .css()

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

Ecco jsfiddle: http://jsfiddle.net/dS7mc/
Funziona in Chrome, ma non funziona in IE10.

Qualche idea su come farlo funzionare con entrambi? Cambiando anche in "border", in chrome mi dà 2px solid rgb(0, 0, 0) ma in I ho ancora un avviso vuoto.

PS. Sì, ho provato "borderColor". Inoltre non funziona in IE

+1

@dystroy ha detto che dà un avviso vuoto –

risposta

5

Prova questo ..Works su IE8

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

enter image description here

jsFiddle

Inoltre, colori vengono restituiti dai browser in un modo diverso FireFox , Safari e Chrome li restituiscono come valori rgb() e IE li restituiscono esattamente come li hai impostati nel tuo CSS anche quando si utilizza la notazione abbreviata (#f00 vs #ff0000) e l'Opera restituisce sempre il colore come hexidecimal con 6 cifre

2

simile a Mohammad Adil:

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

si hanno a spec ogni lato

1

prova js regolare

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

Beh, mi spiace dirlo, ma ho un avviso vuoto anche in Chrome. Potresti provare a configurare jsfiddle. – Kedor

+0

funziona per me localmente su chrome e firebug ma non su violino ora è strano –

5

Questo perché in Internet Explorer non è presente border-color. La proprietà viene rinominato Border pos Colore:

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

Lo stesso vale per border-width e border-style (border-left-width, etc.). Al fine di tirare il colore del bordo (assumendo che tutte le 4 sono gli stessi), utilizza:

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

Altrettanto per tirare il border-width o border-style (sempre assumendo che tutte le 4 sono uguali) devi usare:

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

potete trovare le proprietà di stile di un elemento ha con F12 strumenti di sviluppo di IE:

IE Dev Tools

Problemi correlati