2010-03-14 144 views
6

我有下面的代碼位,簡單地說:jQuery live()...必須點擊兩次才能激活鏈接?

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

然而,這似乎只在鏈接上單點擊後不愁。這些鏈接會動態添加到頁面(a.add-photos-link)。

爲什麼會發生這種情況,我該如何解決這個問題,以便在第一次單擊後啓動?

+0

哪裏是你的JavaScript所在的頁面上?它是否在DOM樹生成後執行? – 2010-03-14 06:45:59

回答

7

您當前的代碼僅爲鏈接創建一個colorbox。它不會打開colorbox,這就是爲什麼你需要點擊鏈接兩次:一次創建它並再次打開它。

可以使用open選項(as documented)創建顏色框立即打開它,像這樣的時候:

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

完美。感謝您爲我清理! – neezer 2010-03-14 07:08:45

+0

我有類似的問題。我在頁面上有一個圖像,並且我爲圖像添加了一個onclick事件。我指定了open:true,但仍需要兩次點擊。 – 2013-01-18 15:46:50

+1

@MarcWilson用您的詳細資料創建一個新問題。 – brianpeiris 2013-01-18 20:16:20

相關問題