Jquery 加载addthis脚本后将addthis HTML添加到dom
我的目标是在Jquery 加载addthis脚本后将addthis HTML添加到dom,jquery,twitter-bootstrap,requirejs,popover,addthis,Jquery,Twitter Bootstrap,Requirejs,Popover,Addthis,我的目标是在href=“#共享”的位置设置锚定标记,并使用添加此按钮将其转换为twitter引导弹出窗口。我有这个工作。更复杂的是,我将html添加到文档和我尝试过的克隆.clone(true),但由于某些原因,事件没有发生 以下是示例:(单击图像上方的“共享”按钮): 更具体的问题是,当你点击社交图标时,什么也不会发生 下面是下面代码的示例。这是我所拥有的require模块,它接收dom中的任何内容,其中href=“#share”,并将其转换为带有添加此按钮的弹出窗口 define(["jq
href=“#共享”
的位置设置锚定标记,并使用添加此按钮将其转换为twitter引导弹出窗口。我有这个工作。更复杂的是,我将html添加到文档和我尝试过的克隆.clone(true)
,但由于某些原因,事件没有发生
以下是示例:(单击图像上方的“共享”按钮):
更具体的问题是,当你点击社交图标时,什么也不会发生
下面是下面代码的示例。这是我所拥有的require模块,它接收dom中的任何内容,其中href=“#share”
,并将其转换为带有添加此按钮的弹出窗口
define(["jquery", "jquery-bootstrap", "addthis"], function($, jb, at){
var share = function(){
var html = '<!-- AddThis Button BEGIN -->'+
'<div class="addthis_toolbox addthis_floating_style addthis_32x32_style hide">'+
'<a class="addthis_button_facebook"></a>'+
'<a class="addthis_button_twitter"></a>'+
'<a class="addthis_button_pinterest_share"></a>'+
'<a class="addthis_button_tumblr"></a>'+
'<a class="addthis_button_thefancy"></a>'+
'<a class="addthis_button_compact"></a>'+
'</div>'+
'<!-- AddThis Button END -->';
var template = '<div class="popover fade top in" id="share">'+
'<div class="arrow"></div>'+
'<div class="popover-content"></div>'+
'</div>';
var isVisible = false;
var clickedAway = true;
$("body").append(html);
var ignite = function(){
var script = document.createElement( 'script' );
script.type = 'text/javascript';
script.src = 'http://s7.addthis.com/js/300/addthis_widget.js#pubid=holstee';
$("head").append(script);
console.log("ignition");
};
$('[href="#share"]')
.show()
.popover({
content: function(){
return $(".addthis_toolbox").clone().removeClass("hide");
},
html: true,
placement: "top",
template: template,
trigger: "manual"
}).click(function(event){
event.preventDefault();
var toggle = ($(this).data('toggle') == undefined) ? true : $(this).data('toggle');
clickedAway = false;
if(toggle){
$(this).popover("show");
isVisible = true;
ignite();
}else{
$(this).popover("hide");
isVisible = false;
}
$(this).data('toggle', !toggle);
});
/*
$(document).click(function(e) {
if(isVisible & clickedAway){
$('[href="#share"]').popover('hide');
isVisible = clickedAway = false
}else{
clickedAway = true
}
});
*/
}
return share;
});
define([“jquery”、“jquery引导”、“addthis”],函数($,jb,at){
var share=函数(){
var html=''+
''+
''+
''+
''+
''+
''+
''+
''+
'';
变量模板=“”+
''+
''+
'';
var isVisible=false;
var clickedAway=true;
$(“正文”).append(html);
var ignite=函数(){
var script=document.createElement('script');
script.type='text/javascript';
script.src=http://s7.addthis.com/js/300/addthis_widget.js#pubid=holstee';
$(“head”)。追加(脚本);
控制台日志(“点火”);
};
$('[href=“#共享”]”)
.show()
波弗先生({
内容:函数(){
返回$(“.addthis_toolbox”).clone().removeClass(“hide”);
},
是的,
位置:“顶部”,
模板:模板,
触发器:“手动”
})。单击(功能(事件){
event.preventDefault();
var toggle=($(this.data('toggle')==未定义)?true:$(this.data('toggle');
ClickedWay=false;
如果(切换){
$(此).popover(“显示”);
isVisible=true;
点燃();
}否则{
$(此).popover(“隐藏”);
isVisible=false;
}
$(this.data('toggle',!toggle));
});
/*
$(文档)。单击(函数(e){
如果(可见并单击路径){
$('[href=“#共享”]').popover('hide');
isVisible=ClickedWay=false
}否则{
ClickedWay=true
}
});
*/
}
回报份额;
});
您需要拨打:
addthis.toolbox('.addthis_toolbox');
将元素附加到popover之后。这将触发AddThis以呈现按钮上的所有单击事件。我只是通过从dev工具控制台调用上面的命令来测试这个问题,所有的按钮都正常工作。我通过在弹出窗口显示后加载AddThis按钮来解决这个问题。见下面的代码
共享
$(“[rel=popover]”。popover({
html:对
});
$(“[rel=popover]”)on('show.bs.popover',function(){
$('#pcontent').html(“”)
$.getScript(“//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-4fa624772af11b1b”)
});
我迫不及待地想试试这个!非常感谢!你有一个bootply或这样的例子吗?我想做类似的事情