基本上,这就是我正在做的事情。 用户访问网站,加载“index.html” 在index.html中,它会通过AJAX自动将“details.html”加载到DIV中。 我在“details.html”上放了一个ADDTHIS按钮。但是,出于某种原因,翻转不起作用。
当我在浏览器中访问details.html时,翻转工作正常。我猜这是因为AJAX?
<a class="addthis_button" href="http://www.addthis.com/bookmark.php?v=250&pub=xa-4adf7e45288f5b21">
<img src="http://s7.addthis.com/static/btn/sm-share-en.gif" width="83" height="16" alt="Bookmark and Share" style="border:0;margin-top:16px;"/></a>
<script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#pub=xa-4adf7e45288f5b21"></script>
答案 0 :(得分:14)
我最近遇到了在所有AJAX网站上使用AddThis的问题,并且能够针对这个问题提出几个解决方案。
事实证明,在加载AJAX脚本时可以传递一个变量,以及在通过AJAX重新加载DOM时重新初始化脚本的方法。 我已经在我的博客上详细发布了完整的解决方案:
http://joecurlee.com/2010/01/21/how-to-use-addthis-with-ajax-and-overflowauto/
简单总结一下,解决方案是加载附加了变量domready = 1的AddThis,并通过删除初始加载然后动态重新加载脚本来重新初始化脚本:
var script = 'http://s7.addthis.com/js/250/addthis_widget.js#domready=1';
if (window.addthis){
window.addthis = null;
}
$.getScript( script );
答案 1 :(得分:5)
addthis.toolbox( “addthis_toolbox。”);
答案 2 :(得分:2)
如果我理解你的问题,在ajax函数的回调中,将翻转绑定到add-this按钮。
$.ajax({
type: "POST",
url: "some.php",
data: "name=John&location=Boston",
success: function(){
$('.addthis_button').hover(
function(){
//do mouse over
},function(){
//do mouse out
});
}
});
您也可以尝试
$('.addthis_button').live('mouseover',function(){//do mouseover});
$('.addthis_button').live('mouseout',function(){//do mouseout});
我从来没有使用过直播,但似乎它会对你有用,因为你的add_this按钮是在$(文件)之后创建的.ready()
答案 3 :(得分:2)
遇到同样的问题,这在所有主流浏览器中解决了它(IE6 +,FF,MAC / XP中的Safari):
答案 4 :(得分:0)
似乎脚本正在调用javascript的onLoad事件,并且使用此ajax调用实际上不会触发该事件。你可以尝试其他“分享这个”小部件吗?
赞http://sharethis.com/#STS=g12m3ugh.21zb 或预先加载该按钮?
你能发布一些关于你在做什么的故事吗?
答案 5 :(得分:0)
details.html是否是一个完全合规的页面? HTML,BODY,HEAD标签等?
如果是这样,我认为当你试图将它加载到另一个页面时,事情会变得棘手。我要么更改details.html以仅包含您需要的准系统标记 - 或者 - 如果您需要它仍然可以单独访问 - 您可以使用jQuery在ajax调用之后去除所需的位并仅注入该部分。 / p>
Details.html
<html>
<head>
</head>
<body>
<div id="details">
The needy bits.......
</div>
</body>
</html>
的index.html
$("#targetDivID").load("detail.html #details");
答案 6 :(得分:0)
将此.js片段添加到您正在加载的.html中。用按钮的选择器替换“#atbutton”。
addthis.button( “#atbutton”);答案 7 :(得分:0)
我有同样的问题。使用以下代码对其进行了修复。我希望它也能为您解决。
原始方法:
var script = 'http://s7.addthis.com/js/300/addthis_widget.js?domready=1';
if (window.addthis){
window.addthis = null;
}
$.getScript( script );
新方法:
<script>
var script = 'http://s7.addthis.com/js/250/addthis_widget.js#domready=1';
if (window.addthis) {
window.addthis = null;
window._adr = null;
window._atc = null;
window._atd = null;
window._ate = null;
window._atr = null;
window._atw = null;
}
$.getScript(script);
</script>
在AJAX REQUEST中,您可以这样使用:-
$.ajax({
url:Url,
type: 'POST',
cache: false,
success: function(res){
var script = 'http://s7.addthis.com/js/250/addthis_widget.js#domready=1';
if (window.addthis) {
window.addthis = null;
window._adr = null;
window._atc = null;
window._atd = null;
window._ate = null;
window._atr = null;
window._atw = null;
}
$.getScript(script);
// your custom code
}
});