2011-11-18 75 views
0

我無法打電話的fancybox像這樣的元素:fancybox可以在課堂上被調用嗎?

$(this).parent().parent().parent().find('.comments').fancybox(); 

那是不可能的?是因爲它是一個類而不是一個id?

我有幾行項目,所以它不可能有所有的ID。

有什麼建議嗎?這裏是整個JS代碼(在這裏展示()工作,但的fancybox()失敗):

$(".action").click(function(e) { 
     e.preventDefault(); 
     $(this).parent().parent().parent().find('.comments').show(); 
     return false; 
    }); 
+1

您是否檢查過以確保您確實獲得了元素? –

+0

'$(this).parent()。parent()。parent()。find('。comments')'是否會返回您期望的實體? – hafichuk

+0

是的。我試圖只顯示()它,它的工作原理。 – Jacob

回答

3

你說這是錯誤的方式;嘗試以下內容:

$('.action').click(function(e){ 
    e.preventDefault(); 
    target = $(this).closest('.comments').html(); 
    $.fancybox({ 
     content: target 
     // More Options 
    }); 
    return false; 
}); 

我希望這有助於!

+0

它肯定會帶來模態 - 但它是空白的 – Jacob

+0

我想這是隱藏的,所以使用'內容:$(this).closest('。comments')。show()' – Janis

+0

@Jacob看看編輯後的答案;應該解決你的問題,讓我知道... – dSquared

1

調用一個元素.fancybox()只有初始化的fancybox。實現它的最好方法取決於你沒有發佈的HTML。

但無論如何,這個解決方案應該工作:

$(".action").click(function(e) { 
    e.preventDefault(); 

    var a = document.createElement('a'); 
    var jqA = $(a); 

    jqA.fancybox({ 
     content: $(this).parent().parent().parent().find('.comments').html() 
     // other options go here 
    }); 

    jqA.click(); 

    return false; 
}); 
+0

這工作完美!感謝十億! – Jacob

+0

NP。我認爲dSquared的解決方案可能會更好,如果您將'.html()'添加到第3行的末尾 - 我不知道你可以打開一個模態調用'$ .fancybox();'直接 – minboost

0

只使用

$(this).closest('.comments').fancybox(); 

外單擊功能。

+0

看看評論;他已經試過了 – dSquared