2012-05-23 108 views
0

當我點擊「顯示評論」鏈接時,我想打開一個Div並追加Facebook評論框。但是我想追加一次FB-Comments,然後使用鏈接切換該Div。什麼是最好的方式來追加HTML只是一次?

我是想這樣的事情,但我點擊鏈接,當然,每一次它只是追加它...

http://jsfiddle.net/4LnzD/

謝謝!

UPDATE:

http://jsfiddle.net/4LnzD/4/

現在,它的偉大的工作,但如果有人知道最有效的方式做到這一點,歡迎您!

+0

爲什麼使用附加而不是切換可視性? – deltree

+0

@deltree我認爲最好不要加載所有的(我有很多與個人評論條目)Facebook的評論框。我只是想加載點擊... – Santiago

+0

然後通過AJAX加載它們,並且div應該仍然是可見或不可見的基於切換,而不是由AJAX調用 – deltree

回答

3

添加內容後,向目標元素添加類名稱。在第二次添加之前檢查類名的存在。

1)添加類

$('#target').addClass("done") 

2)檢查類

if($('#target').hasClass("done")) { 
... 
} 
+0

我試過使用「.hasClass」,但我做不到。不幸的是,我不是一個與jQuery親:( – Santiago

+0

我已經添加了一個代碼示例。 –

+0

我這樣做,但我認爲我做錯了... $( '#fb_comentarios_' + UID).addClass( 「完成」) \t如果($( '#fb_comentarios _')。hasClass(「完成「)){ \t \t $( '#fb_comentarios_' + UID).toggle(); \t}其他{ \t $( '#fb_comentarios_' + UID).append(commentBox); \t} – Santiago

0

用途:

$(document).load(function() { 
    //Load comments section here 
    $('.fb_comments').hide(); 
}) 

這將創建的意見,但隨後隱藏起來。然後創建按鈕,onClick(或綁定.click())調用此:看

$('.fb_comments').toggle(); 
+0

的事情是我不希望當我加載網頁加載所有Facebook的意見,但只是當我點擊「顯示評論」鏈接... – Santiago

+0

@Santiago爲什麼不能在文檔加載後臺加載它們?爲什麼讓用戶在點擊後等待? – ehudokai

+0

@ehudokai也許會更好。事情是,我使用了「負載更」像Twitter,我不知道,如果加載50個或更多的Facebook評論框將是最好的 – Santiago

1

檢查的意見格已經在DOM存在,如果它不然後附加:

if(! $('#fb_comments_' + uid).children(".fb-comments").length){ 
    $('#fb_comments_' + uid).append(commentBox); 
} 

$('#fb_comments_' + uid).toggle(); 

.length將返回與DOM中的選擇器匹配的元素的實例數。由於0在JavaScript中等於false,因此我們可以將它視爲條件中的布爾值。

+0

這工作,但如果我點擊鏈接上的所有頁面加載之前,它不什麼都不做。那很奇怪... – Santiago

相關問題