Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/06/2011, 08:29
victorfz
 
Fecha de Ingreso: abril-2002
Mensajes: 186
Antigüedad: 22 años
Puntos: 2
Añadir clase a botón pero no funciona. Avanzado

Hola he colgado un ejemplo para poder ver el código de mi problema.
http://xurl.es/kwrp1

Resulta que tengo una plantilla html/css con botones que cambian de color con :hover
Lo curioso es que cuando ese mismo botón se muestra a través de una consulta ajax no ya no cambia de color, si que conserva los estilos (tamaño, color...) pero el color de :hover deja de hacerlo.

Para poder ver el error basta con clicar sobre el botón de radio etiquetado cono "Si" y se mostrará un botón que no cambia de color.

El probelma real por lo que veo con firebug es que al cargarse dinámicamente el botón con el texto "Mostrar empresas Funciona mal" este no llama a la función
function artButtonSetup(className)
que es la que hace que el boton cambie de color (bueno realmente lo que hace es cambia de posicion una imagen).

Pongo el código de la función que por algún motivo no es llamada cuando el botón se mustra tras una consulta ajax.

Código HTML:
/* begin Button */
function artButtonSetup(className) {
    jQuery.each(jQuery("a." + className + ", button." + className + ", input." + className), function (i, val) {
        var b = jQuery(val);
        if (!b.parent().hasClass('dpw-button-wrapper')) {
            if (b.is('input')) b.val(b.val().replace(/^\s*/, '')).css('zoom', '1');
            if (!b.hasClass('dpw-button')) b.addClass('dpw-button');
            jQuery("<span class='dpw-button-wrapper'><span class='dpw-button-l'> </span><span class='dpw-button-r'> </span></span>").insertBefore(b).append(b);
            if (b.hasClass('active')) b.parent().addClass('active');
        }
        b.mouseover(function () { jQuery(this).parent().addClass("hover"); });
        b.mouseout(function () { var b = jQuery(this); b.parent().removeClass("hover"); if (!b.hasClass('active')) b.parent().removeClass('active'); });
        b.mousedown(function () { var b = jQuery(this); b.parent().removeClass("hover"); if (!b.hasClass('active')) b.parent().addClass('active'); });
        b.mouseup(function () { var b = jQuery(this); if (!b.hasClass('active')) b.parent().removeClass('active'); });
    });
}
jQuery(function() { artButtonSetup("dpw-button"); });

/* end Button */
ya se que es bastante confuso el tema este pero agradeceria cualquier ayuda o comentario.
Gracias