No, no se puede activar JavaScript directamente desde CSS.
Lo que puede hacer es usar selectores de CSS para encontrar los elementos que desea ver de esta manera, y luego observar los eventos del mouse. Los eventos estándar son mouseover
y mouseout
, pero pueden ser un poco difíciles de trabajar porque burbujean (se obtiene mouseout
, por ejemplo, cada vez que el mouse deja algún elemento descendiente). Sin embargo, con la lógica adecuada, no es malo trabajar con ellos, y de hecho, si tiene muchos de estos, es probable que desee utilizar mouseover
y mouseout
en lugar de la alternativa siguiente porque puede configurarlos solo en un contenedor principal y luego averigüe qué elemento descendiente está involucrado, que puede ser más simple en algunos casos (y más complicado en otros).
IE proporciona mouseenter
y mouseleave
que son mucho más fáciles de usar porque no son burbujas, pero (por supuesto) específicos de IE. Estos son tan útiles que los marcos están empezando a admitirlos incluso en navegadores que no lo hacen; Prototype y jQuery los proporciono, por ejemplo, y no me sorprendería demasiado si otros marcos también lo hacen. jQuery también proporciona la práctica función hover
, lo que sería muy cercano a lo que quiere:
// jQuery
$(".first-nav li a").hover(
function(event) {
// The mouse has entered the element, can reference the element via 'this'
},
function (event) {
// The mouse has left the element, can reference the element via 'this'
}
);
... que es en realidad un acceso directo para la creación de mouseenter
y mouseleave
manipuladores, pero aún así, maravillosamente conciso.
En Prototipo Es bastante similar:
// Prototype
$$(".first-nav li a")
.invoke("observe", "mouseenter", function(event) {
// The mouse has entered the element, can reference the element via 'this'
})
.invoke("observe", "mouseleave", function(event) {
// The mouse has left the element, can reference the element via 'this'
});
(OT:. En ambos casos, he utilizado las expresiones de función de línea anónimas sólo para no dar la impresión de que usted tiene que utilizar funciones con nombre I siempre recomienda usando funciones nombradas en código de producción, sin embargo)
@Qutbuddin Kamaal: Debería considerar el uso de una biblioteca CSS como jQuery o Prototype. Permiten realizar consultas utilizando selectores de CSS, y puede establecer un solo controlador de eventos para muchos elementos de forma instantánea (lo cual me parece lo que está intentando hacer). –
eh, me refiero a la biblioteca JS (y es demasiado tarde para editar ahora lol) –