2012-03-28 12 views
11

powrócić napisałem następujący jQuery javascript rzeczyjquery .css ("border-color") nie ma nic

$(document).mousemove(function(event) { 
    var element = event.target; 
    $(element).css("border","black solid 1px"); 
}); 

$(document).mouseout(function(event) { 
    var element = event.target; 
    console.log("1 = "$(element).css("border-color")) 
    $(element).css("border","0px"); 
    console.log("2 = " + $(element).css("border-color")) 
}); 

To w zasadzie rysuje ramkę wokół campusu elementu. Podczas uruchamiania tego w chrome wyjście console.log("1 = "$(element).css("border-color")) jest "", tj. Nic. To samo dotyczy console.log("2 = "$(element).css("border-color")). Ale spodziewam się czarnego. Próbowałem również borderColor, który również nie działa.

W każdym razie po najechaniu na element wokół tego elementu rysowana jest ramka, jak można się spodziewać. Dlaczego więc wynik nie daje nic w zamian?

+0

Ten mA y nie ma związku, ale wystąpił błąd składni. Powinien to być 'console.log (" 1 = "+ $ (element) .css (" border-color ");'. Nie zapomnij także o tych średnikach! –

Odpowiedz

18

Nie można używać skrótu do jquery. Musisz być bardziej konkretny, np. "border-top-color"

Daj mi znać, jeśli to działa.

+2

to nie zadziała, musisz podać nazwę właściwości jako CamelCase – simon

+7

@semyon: jQuery przetłumaczy 'border-top-color' na' borderTopColor'. Tak więc, albo działa .. – thirtydot

+0

@semyon Właśnie utrzymywałem rozwiązanie zgodne z jego pytaniem. Jquery gra dobrze z każdym z nich. –

3

Z pomocą inspektora można sprawdzić, czy nie istnieje właściwość o nazwie 'border-color', szukasz 'obramowania [top | bottom | left | right] -Color'

+0

tak, i nie zapomnij użyć nazwy CamelCased, a nie łączonego – simon

7
$("#mytext").focus(function() { 

    $(this).css({'background-color': '#FFFFCC'}); 

    $(this).css("border", "black solid 1px"); 

}).blur(function() { 

    $(this).css({'background-color': '#fff'}); 
    $(this).css("border", "#DCDCDC solid 1px"); 

}); 


<input type="text" id="mytext"> 

Spróbuj

http://jsfiddle.net/prabirchoudhury/kcnT8/

0

Dopóki ustawić kolor z JavaScript/jQuery (jak nie sądzę, że to zadziała, jeśli został ustawiony tylko w CSS). Nie mam pojęcia, jak uzyskać dostęp do tych właściwości za pośrednictwem jQuery, ale nadal można uzyskać dostęp do właściwości granicy przy użyciu natywnego JavaScript.

console.log(this.style.borderTop); // should return '1px solid rgb(0, 0, 0)' 
console.log(this.style.borderColor); // should return 'rgb(0, 0, 0)' 

Uwaga:
.border (Top | Right | Bottom | Left) wydaje się dość wiarygodne, ale
.border (Style | Color | Width) daje różne wyniki.

Myślę, że to zależy, czy stenogramy są identyczne; np:

  • Wszystkie bokach identicle
  • górny i dolny (ze sobą)/lewo i prawo (z siebie)
  • góra/lewo i prawo (ze sobą)/dolny
  • wszystkie cztery są ustawione inaczej nie wydaje się działać
  • muszę jeszcze mieć sukces tylko element.style.border całego zestawu granicznego na raz (tj element.style.border = '1px solid #000')
Powiązane problemy