CSS IE desplegable que se expande al hacer clic en arreglar

Entonces encontré esta solución para un menú desplegable que se expande en IE cuando se hace clic

if ($j.browser.msie && $j.browser.version < 9)
    $j("#partDropdown,#categoryDropdown")
        .live("focus mouseover", function() { $j(this).addClass('expand').removeClass('clicked'); })
        .live('click', function() { $j(this).toggleClass('clicked'); })
        .live('mouseout', function() {
            if (!$j(this).hasClass('clicked')) {
                $j(this).removeClass('expand');
            }
        })
        .live('blur', function() { $j(this).removeClass('expand clicked'); });

Que tenía el siguiente css también

.expand select
{
    width: auto !important;
}

¿Pero nunca tuvo un css para hacer clic? ¿Es necesario? ¿O el jquery simplemente agrega una clase vacía de clic?

preguntado el 03 de mayo de 12 a las 15:05

funcionó de esa manera? Intente y pruébelo, y si no agrega esa clase en la que hizo clic, y si esto tampoco funciona, regrese y haga una pregunta real. -

Sí, funciona. Me preguntaba por qué funcionó sin que él agregara la clase css en la que se hizo clic.

O si necesitaba agregar mi propia clase css cliqueada -

2 Respuestas

La clicked-class está ahí para evitar el colapso cuando se "hace salir el mouse" después de hacer clic en ese elemento:

if (!$j(this).hasClass('clicked')){...}

Eso es todo para lo que necesitas esta clase. No tienes que especificar ninguna regla para esta clase en tu CSS.

contestado el 03 de mayo de 12 a las 15:05

Puede usar clases CSS que no están definidas en ningún archivo CSS o <style> etiqueta, simplemente no cambiarán la forma en que se representa la etiqueta.

En realidad, es una práctica muy común adjuntar metadatos a sus etiquetas, ya que son fáciles de agregar y eliminar, y son triviales de consultar (puede usar expresiones de selección en jQuery y similares, por ejemplo). En este caso, el clicked La clase se usa para retener si se ha hecho clic en el menú desplegable o no, lo que de otro modo requeriría variables globales desordenadas (o funciones lambda complicadas).

contestado el 03 de mayo de 12 a las 15:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.