Twitter嵌入时间线消失
Twitter Embedded Timeline Disappears
我通过Jquery嵌入了一个twitter时间线,这样当用户点击按钮时,它就会创建带有时间线的div。。。当他再次点击它时,时间线消失了。
这是有效的,但当我再次单击按钮时,它不想再次加载。所以我每页只能加载一次。
$("#TWT").click(function(e) {
e.preventDefault();
if(loadHtml == "empty") {
$( "#authorName" ).load( "test.html" );
loadHtml = "full";
} else if(loadHtml == "full") {
$("#tweetDiv").remove();
loadHtml = "empty";
}
});
test.html包含嵌入的内容,loadHtml设置为空。
我的实际实现更为复杂,但我已经将其简化为这样,这样我就可以看到哪里出了问题。包含twitter提要的div再次出现。。。但是进给不会再次加载。
在不加载的情况下多次将嵌入的时间线提供给页面是否存在问题?如果我刷新页面,它再次工作。。。只有一次。
PS:只是澄清一下——这不是div不再出现的问题。当我查看生成的html时,它显示得很好。只是Twitter不想再次加载
我刚刚遇到了一个类似的问题并解决了它。你一定包含了一些类似twitter提供的javascript:
!function(d,s,id){
var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';
if(!d.getElementById(id)){
console.log("executed");
js=d.createElement(s);
js.id=id;
js.src=p+"://platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js,fjs);
}
}(document,"script","twitter-wjs");
我通过评论if()语句解决了这个问题:
!function(d,s,id){
var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';
//if(!d.getElementById(id)){
console.log("executed");
js=d.createElement(s);
js.id=id;
js.src=p+"://platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js,fjs);
//}
}(document,"script","twitter-wjs");
无论如何,#tweetDiv是#authorName的父级吗?如果是这种情况,$("#tweetDiv").remove()将导致#authorName也从DOM中删除,这意味着您的下一个.load()不针对页面上的任何元素。
顺便说一句,如果你要显示/隐藏东西,我建议使用.show()和.hide(),它们在浏览器上比较便宜,因为它不会改变DOM节点。
相关文章:
- Moment/Jquery-一个简单时间线的愚蠢问题
- 尝试从控制器加载带有json数据的Simile时间线
- 谷歌图表API:添加空白行到时间线
- 用Jquery map和moment js制作一个简单的时间线
- 在时间线上绘制点的公式
- 谷歌表格注释时间线显示精确的值
- 使用 YYYY-MM-DD 值的比较构建 D3 时间线
- visjs时间线的水平滚动条
- 通过Twitter API javascript从时间线获取Twitter状态
- 带注释的时间线,重新绘制时图形会闪烁
- 将时间线添加到引导程序旋转木马
- Javascript进度条时间线
- YQL推特时间线超出速率限制.解决方法
- 谷歌用数字绘制时间线
- 如何定义搜索词框来搜索用户'使用Twitter流API和meter.js的特定时间线
- 谷歌可视化时间线显示鼠标光标的时间
- Simile时间线竖条
- 成功的操作类型未出现在时间线上
- 制作谷歌注释时间线 为缺少的日期填充零
- Twitter嵌入时间线消失