Javascript Affix不是一个函数。

3
我整天都在 Bootply 沙盒中工作,遇到一个问题,当我将相同的代码移动到实际服务器上时,它就会出现问题。
这是沙盒链接,affix 运行良好: http://www.bootply.com/wu2vXxkt5o# 在实际网站版本中,我收到了错误提示,并且无法加载元素 (三个图像)。

TypeError: $(...).affix 不是一个函数

实际网站链接为:http://nathan97.com 相关代码如下:
/* activate sidebar */
$('#sidebar').affix({
  offset: {
    top: 235
  }
});

1
你的代码脚本调用了 affix,但是它在 bootstrap.js 的脚本标签之前。你试图在它存在之前调用它。jQuery 脚本也有同样的问题。你的代码应该始终在依赖项之后被包含。 - m59
将bootstrap.js更新到3.0版本并使其正常工作。https://dev59.com/95_ha4cB1Zd3GeqPuCb7#44344544 - Rain
1个回答

3

首先将cover.js文件放在affix.js文件之后,否则affix函数将无法找到。

其次,在标签中的脚本会在元素呈现之前调用,因此$('#sidebar')将不会被找到。请使用$(document).ready将您的函数包裹起来,在body完成呈现后调用代码。

正确的顺序:

<script type="jquery.js"></script>
<script src="cover.js"></script>
<script src="affix.js"></script>

cover.js

$(document).ready(function() {

    $('#sidebar').affix({
      offset: {
        top: 235
      }
    });

   // ...

});

我已经按照你的建议进行了更正,但似乎仍然不起作用。文档准备好后仍然会出现一个函数不存在的问题,我也在加载所有依赖项之前加载了前缀。我更正后的版本已经上传至网站,但仍未能正常工作。如果您能抽出一些时间提供帮助,将不胜感激。谢谢。 - Devanuze

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接