在这个问题中,我使用addthis小部件作为示例,但对于任何小部件都是如此(如果可以进行泛化)
addthis是一个小部件,可将所有社交链接添加到网页中。然而,它带有非常有限的设计定制选项。所以为了使它适合我的主题,我需要将addthis生成的标签转移到我自己的html / css结构中。
我尝试在文档就绪上使用JQuery append方法:
$(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>
答案 0 :(得分:1)
尝试使用它:
function addthisReady(evt) {
// your jQuery code
}
addthis.addEventListener('addthis.ready', addthisReady);
有关详细信息,请查看http://support.addthis.com/customer/portal/articles/1365497-addthis-javascript-events
编辑:
出于一般目的,我可以假设您可以使用事件 DOMSubtreeModified 来执行您的代码,当窗口小部件将更改窗口小部件容器的HTML时,如下所示:
var isChanged = false;
$(".widget_container").bind("DOMSubtreeModified", function() {
if (! isChanged) {
isChanged = true;
// your code
}
});
但最好使用widget的内置事件,因为 DOMSubtreeModified 在IE 9(http://help.dottoro.com/ljrmcldi.php)中有错误