2012-03-28 24 views
11

escribí lo siguiente jQuery JavaScript cosasjquery css ("border-color") no devuelve nada

$(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")) 
}); 

Es básicamente dibuja un marco alrededor de un elemento cernía. Cuando se ejecuta esto en Chrome, la salida de console.log("1 = "$(element).css("border-color")) es "", es decir, nada. Lo mismo es cierto para console.log("2 = "$(element).css("border-color")). Pero yo esperaría negro. También probé borderColor que tampoco funciona.

De todos modos al pasar el elemento, se dibuja un marco alrededor de este elemento como era de esperar. ¿Por qué entonces la salida no da nada a cambio?

+0

Esta ma y no tiene relación, pero tiene un error de sintaxis. Debería ser 'console.log (" 1 = "+ $ (element) .css (" border-color ");'. ¡No olvide esos puntos y comas! –

Respuesta

18

No se puede usar la abreviatura de jquery. Tienes que ser más específico, p. "border-top-color"

Avísame si eso funciona.

+2

esto no funcionará, debe especificar el nombre de la propiedad como CamelCase – simon

+7

@semyon: jQuery traducirá 'border-top-color' a' borderTopColor'. Entonces, cualquiera de las dos funciona ... – thirtydot

+0

@semyon Solo estaba manteniendo la solución en línea con su pregunta. Jquery juega bien con cualquiera de los dos. –

3

Con la ayuda de un inspector puede comprobar que no existe una propiedad llamado 'border-color', que busca 'frontera- [arriba | abajo | left | right] -color'

+0

sí, y no te olvides de usar el nombre CamelCased, sin guión – 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"> 

probar este

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

0

Mientras se establece el color con JavaScript/jQuery (como en no creo que va a funcionar si sólo se encuentra en CSS). No he descubierto cómo acceder a estas propiedades a través de jQuery, pero aún puede acceder a las propiedades del borde con JavaScript nativo.

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

Nota:
.border (Top | Right | Bottom | Left) parece bastante fiable, pero
.border (Style | Color | Width) produce resultados mixtos.

Creo que depende si los lados abreviados son idénticos; por ejemplo:

  • Todos los lados de la identicle
  • parte superior e inferior (entre sí)/izquierda y derecha (entre sí)
  • superior/izquierda y la derecha (entre sí)/inferior
  • Los cuatro están estableciendo de forma diferente, no parece trabajar
  • todavía tengo que tener éxito con sólo element.style.border conjunto frontera entera a la vez (es decir element.style.border = '1px solid #000')