2013-09-27 30 views
0

我有一個從AJAX加載的元素。有了這個元素,我連接了Facebox.js。點擊元素後,它會觸發Facebox。所以我用:jquery .on和facebox的錯誤

$(document).on("click", "a[rel*=modal]", function() { 
    $(this).facebox(); // Applies modal window to any link with attribute rel="modal" 
}); 

事情是,它需要在Facebox觸發前點擊兩次元素。所以作爲一個快速修復,我補充說:

$('a[rel*=modal]').trigger('click'); 

這樣,我可以點擊元素只有一次觸發。有沒有更好的解決方法?

回答

1

問題是,當第一次點擊發生在facebox插件未初始化,一個解決方法是初始化插件,然後重新觸發點擊事件再次

$(document).one("click", "a[rel*=modal]", function() { 
    $(this).facebox().triggerHandler('click'); 
}); 
+0

謝謝阿倫。這正是我正在尋找的。在使用其他插件時使用Jquery時遇到同樣的問題。看起來你的答案也適用於他們。 –