JQueryスムーススクロール Uncaught TypeError: target.offset() is undefined

新しいサイトにスムーススクロールのJQuery記述からデバッグモードでエラーが発生。

原因がすぐに特定できず、スクロールも挙動がおかしいし、難しく考えて動作ファイルと入れ替えなど、わりと時間をかけてしまった。

 

Uncaught TypeError: target.offset() is undefined
scrollToAnker /js/utility.js:234
<anonymous> /js/utility.js:216
setTimeout handler*

 

結論からいうと、スクロール先のターゲットがないということなんですが、「別のサイトで動作していて、同じコード構造で制作しているのに、そんなはずはない!」という思い込みからちょっと手間がかかってしまった。

確かにページアンカーリンク先に指定したIDが存在しない。

気が付いたのはページアンカーリンクが動作しないという以外にケアレスミスレベルでした。

 

参考:TypeError: “x” is (not) “y”

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Errors/Unexpected_type

ここの説明、シンプルすぎる故、わかりませんでした。

 

先入観や思い込みは、遠回りして時間を浪費するというのは人生も同じだなと実感した出来事でした。