expandTitle(...) is not a function报错求助:无拼写错误仍触发问题
问题排查与解决方案
嘿,我一眼就揪出导致报错的原因啦!
核心错误点
你在自执行函数里的函数调用写法出了问题,看这段代码:
(function () { expandTitle('#viewPointTitle>h1')(); })();
expandTitle('#viewPointTitle>h1')本身已经是执行这个函数的语法了,后面多出来的()是在试图把expandTitle的返回值(而你的expandTitle并没有返回任何函数)当作函数来调用,这就直接触发了expandTitle(...) is not a function的错误。
修正后的完整代码
把多余的()删掉就可以正常运行了:
$(document).ready(function () { // ... 其他代码 ... function expandTitle(selector) { let param = $(selector), paramOverlay = $(selector + '>.overlay'); let overlayHeight = getOuterHeight(param), overlayWidth = getOuterWidth(param); param.css({ 'height': overlayHeight }); param.hover( function () { paramOverlay.animate({ 'width': overlayWidth }); }, function () { paramOverlay.animate({ 'width': 0 }); } ); }; // ... 其他代码 ... (function () { expandTitle('#viewPointTitle>h1'); // 这里删掉了多余的() })(); });
额外建议检查项
- 确认
getOuterHeight和getOuterWidth这两个函数是已定义且能正常工作的,不然后续动画逻辑可能会出问题; - 验证选择器
#viewPointTitle>h1在DOM中确实存在,不然jQuery会拿到空对象,动画效果也无法正常触发。
内容的提问来源于stack exchange,提问作者Tai Ly
相关产品推荐
相关产品推荐

