使用jQuery totop返回顶部插件报tottTop is not a function错误如何解决
错误原因
该报错表示你调用的tottTop方法没有被正确挂载到jQuery实例上,常见诱因如下:
- 资源加载顺序错误:jQuery库的引入位置在你自定义的tottTop插件代码之后,或者插件定义代码在调用代码之后加载,导致方法注册失败
- $符号冲突:你使用的Sitecore环境可能存在其他JS库(如Prototype、Zepto等)占用了
$标识符,插件是挂载到jQuery命名空间下的,直接用$调用时指向的不是jQuery对象,自然找不到对应方法 - 重复引入jQuery:头部引入jQuery并注册插件后,页面其他位置二次引入了jQuery,新引入的jQuery会覆盖原有实例,导致之前挂载的
tottTop方法丢失
解决方法
按优先级依次排查修复:
- 严格调整JS加载顺序,确保顺序为:
- 第一步:引入jQuery库
- 第二步:加载你编写的tottTop插件定义代码
- 第三步:执行tottTop初始化调用代码
- 解决$符号冲突,修改初始化调用的代码为如下写法,锁定作用域内
$指向jQuery:
<script> (function($){ $('.totop').tottTop({ scrollTop: 700 }); })(jQuery); </script>
- 检查页面所有JS引入节点,删除重复的jQuery引入,确保全页面只加载一次jQuery库
额外提示:你插件代码里的动画时长参数名
scrtollTopBtnDuration拼写错误(多了一个r,正确应为scrollTopBtnDuration),该问题不会触发当前报错,但会导致你自定义的该参数不生效,可同步修正。
内容的提问来源于stack exchange,提问作者Mr.M
相关产品推荐
相关产品推荐

