2010-03-14 12 views
6

Sadece, aşağıdaki kod biraz var: jQuery live() ... bağlantıları etkinleştirmek için iki kez tıklamak zorunda mı?

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

Ancak bu sadece İKİ KAT linke tek tıklayarak sonra işe görünmektedir. Bu bağlantılar sayfaya dinamik olarak eklenir ( a.add-photos-link).

Bu neden oluyor ve bunu düzeltmek için ne yapabilirim? İlk tek tıklamadan sonra tetikleniyor?

+0

? DOM ağacı inşa edildikten sonra yürütülür mü? –

cevap

7

Geçerli kodunuz yalnızca bağlantı için bir renk kutusu oluşturur. Renk kutusunu açmaz, bu yüzden iki kez tıklamak zorundasınız: bir kez oluşturmak ve tekrar açmak için.

Sen open seçeneği (as documented) kullanabilir Colorbox şöyle, hemen açmak için oluştururken: JavaScript sayfasında yer almaktadır

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

Mükemmel. Bunu temizlediğin için teşekkürler! – neezer

+0

Benzer bir sorunum var. Bir sayfada bir resmim var ve resme bir onclick etkinliği ekledim. Açık olarak belirttim: true, ancak yine de iki tıklamaya ihtiyacı var. –

+1

@MarcWilson Bilgilerinizle yeni bir soru oluşturun. – brianpeiris

İlgili konular