【发布时间】:2013-12-03 17:16:46
【问题描述】:
当我在我的 HTML 文档中使用此代码时,它正在工作:
$('a.tocenter[href*=#]').click( function() {
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'')
&& location.hostname == this.hostname) {
var $target = $(this.hash);
$target = $target.length && $target || $('[name=' + this.hash.slice(1) +']');
if ($target.length) {
var targetOffset = $target.offset().top;
$('html,body').animate({ scrollTop: targetOffset - ( $(window).height() - $target.outerHeight(true) ) / 2 }, 1000);
return false;}
}
});
如果我尝试将此代码放在外部 JavaScript 文件中,然后将其链接到:
<script src="js/main.js"></script>
它不起作用,为了让它起作用,我不得不把它包裹起来:
$( window ).load(function() {
...
});
如果我这样做,它会起作用。
我是 JavaScript/jQuery 的新手,这是正常的还是我做错了什么?为什么会这样?这样做是个好习惯吗?
将它放在外部文件中的唯一目的是保持代码简洁易懂。
【问题讨论】:
-
我认为您应该尝试将脚本标签放在文档的
</html>标签之后。这样,您的脚本将在手边找到完整的文档。
标签: javascript jquery external-js