我是JavaScript的新手,正在帮助朋友维护他的网站。我唯一无法弄清楚他的index.html页面正在做什么,围绕着这段JavaScript代码。我在下面有几个问题。
<script type="text/javascript">
function reRenderPin() {
for (var n in window) {
if ( n.indexOf('PIN_') == 0 && $("a[data-pin-do]").length > 0) {
$("a[data-pin-do]").attr("id", "pinbutton");
var element = document.getElementById('pinbutton');
window[n].f.render.buttonBookmark( element );
}
}
}
$(document).ready(function(){
reRenderPin();
});
$(document).bind("projectLoadComplete", function(e, pid) {
reRenderPin();
});
</script>
<script type="text/javascript" src="//assets.pinterest.com/js/pinit.js"></script>
我对此进行了搜索,但没有一个回复对我很清楚。
我知道这与Pinterest有关,我知道reRenderPin()函数是在“document ready”时间和“projectLoadComplete”时间调用的。
我的问题是:
reRenderPin()函数在做什么?
projectLoadComplete事件何时发生?我对此进行了搜索,但关于它的信息非常少,而且对我来说并不清楚。
我注意到该函数使用“$”函数。我知道这是一个JQuery函数,但我对JQuery函数的理解是,如果你使用它们,你必须在你的html中有一个代码库的链接。页面上唯一的.js库是指向pinterest assests的库 - 请参阅代码。这个“$”函数如何在没有库的情况下工作?
非常感谢任何帮助?
的问候,
安吉洛
答案 0 :(得分:0)
该脚本似乎是一个pinterest pin按钮脚本。
可能由您正在使用的CMS或模板插入
1)脚本可能在需要时插入jQuery
2)代码在窗口范围中查找以PIN_开头的变量,并查找带有data-pin-do和匹配函数窗口的链接[&#34; pin_something&#34;]。
3)projectLoadComplete由另一个脚本触发,当被触发时,调用reRender - 它似乎与称为货物的平台有关 - http://support.cargocollective.com/customer/portal/articles/708669-adding-a-pinterest-widget