Javascript 外部小部件加载完成后执行JS命令
在这个问题中,我以addthis小部件为例,但对于任何小部件都是如此(如果可以推广的话) 是一个将所有社交链接添加到网页的小部件。但是,它的设计定制选项非常有限。因此,为了使它适合我的主题,我需要将addthis生成的a标记转移到我自己的html/css结构中 我尝试在document ready上使用JQuery append方法:Javascript 外部小部件加载完成后执行JS命令,javascript,jquery,widget,Javascript,Jquery,Widget,在这个问题中,我以addthis小部件为例,但对于任何小部件都是如此(如果可以推广的话) 是一个将所有社交链接添加到网页的小部件。但是,它的设计定制选项非常有限。因此,为了使它适合我的主题,我需要将addthis生成的a标记转移到我自己的html/css结构中 我尝试在document ready上使用JQuery append方法: $(document).ready(function(){ var addthis = $("#atftbx"); }); 但是,$(“#atftbx”
$(document).ready(function(){
var addthis = $("#atftbx");
});
但是,$(“#atftbx”)返回的数组为空[],这意味着jquery在页面上找不到该元素。我假设在执行$(document).ready时,小部件还没有加载。是否有任何事件我可以监听然后执行?还有别的办法吗
这并不重要,只是出于参考目的,这里有一个小部件生成内容的示例
<div class="addthis_custom_follow">
<div id="atftbx" class="at-follow-tbx-element addthis-smartlayers animated at4-show">
<p><span> </span></p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_white_style circular">
<a class="addthis_button_facebook_follow...">
<span class="at300bs at15nc at15t_facebook">
<span class="at_a11y">Follow on Facebook</span>
</span><span class="addthis_follow_label">Facebook</span>
</a>
<a class="......
</a>
关注Facebook
脸谱网
尝试使用以下方法:
function addthisReady(evt) {
// your jQuery code
}
addthis.addEventListener('addthis.ready', addthisReady);
有关更多信息,请查看
编辑:
出于一般目的,我可以假设,当小部件更改小部件容器的HTML时,您可以使用eventdomsubtreemeding执行代码,如下所示:
var isChanged = false;
$(".widget_container").bind("DOMSubtreeModified", function() {
if (! isChanged) {
isChanged = true;
// your code
}
});
但是最好使用widget的内置事件,因为domsubtreemedited在IE 9中有缺陷()感谢您提供的信息。内置的小部件不适合我。我检查了调试器,它确实停止了,但是它找不到dom元素。但是你的第二个建议奏效了。我能够看到我正在寻找的dom元素。这肯定回答了我的问题,但我对addthis小部件事件很好奇。