2010-03-14 14 views
6

Tengo el siguiente fragmento de código, simplemente:jQuery live() ... tiene que hacer clic dos veces para activar los enlaces?

$(function() { 
    $('a.add-photos-link').live('click', function(e) { 
    $(this).colorbox({ 
     overlayClose: false, 
     onComplete: function() { 
     $('#add_photos').submit(function(e) { 
      // more stuff to do 
      e.preventDefault(); 
     }); 
     } 
    }); 
    e.preventDefault(); 
    }); 
}); 

Sin embargo, esto sólo parece funcionar después de un solo clic en el enlace de dos veces. Estos enlaces se agregan dinámicamente a la página (a.add-photos-link).

¿Por qué ocurre esto y qué puedo hacer para solucionarlo, por lo que se dispara después del primer clic?

+0

Dónde está tu JavaScript encuentra en la página? ¿Se ejecuta después de que se construye el árbol DOM? –

Respuesta

7

Su código actual solo crea un colorbox para el enlace. No abre el cuadro de colores, por lo que debe hacer clic en el enlace dos veces: una para crearlo y otra vez para abrirlo.

Usted puede utilizar la opción open (as documented) al crear la caja de colores para abrir de inmediato, así:

$(this).colorbox({ 
    open: true, 
    overlayClose: false, 
    onComplete: function() { 
    // ... 
    } 
}); 
+0

Perfecto. ¡Gracias por aclarar eso para mí! – neezer

+0

Tengo un problema similar. Tengo una imagen en una página y agregué un evento onclick a la imagen. He especificado abrir: verdadero, pero aún necesita dos clics. –

+1

@MarcWilson Crea una nueva pregunta con tus datos. – brianpeiris

Cuestiones relacionadas