2012-05-23 112 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

相关问题