前提・実現したいこと
index.html.haml内のみでjsファイルを適用したいです。
ご教示お願い致します。
発生している問題・エラーメッセージ
他のページに遷移した際もjsファイルが読み込まれてしまい、
エラーが発生してしまいます。
Uncaught TypeError: Cannot read property 'classList' of undefined at switchImage
該当のソースコード
var elInner, duration, defaultIndex, switchImage; elInner = document.getElementsByClassName('wrapper__photo__image'); duration = 5000; defaultIndex = 0; switchImage = function(next) { var current = next ? (next - 1) : elInner.length - 1; elInner[current].classList.remove('is-visible'); elInner[next].classList.add('is-visible'); next = (++next < elInner.length) ? next : 0; setTimeout(switchImage.bind(this, next), duration); }; window.onload = switchImage.bind(this, defaultIndex);
試したこと
下記URLの情報を元に5行目にif文を使ってみましたが、反応がしませんでした。
http://tokidoki-web.com/2013/02/%E3%80%8Ejquery%E3%81%A7%E7%89%B9%E5%AE%9A%E3%81%AEurl%E3%81%8C%E4%B8%80%E8%87%B4%E3%81%97%E3%81%9F%E3%82%89%E5%87%A6%E7%90%86%E3%81%97%E3%81%A6%E3%82%84%E3%82%93%E3%82%88%E3%80%8F/
var elInner, duration, defaultIndex, switchImage; elInner = document.getElementsByClassName('wrapper__photo__image'); duration = 5000; defaultIndex = 0; if(document.URL.indexOf("index.html.haml")) { switchImage = function(next) { var current = next ? (next - 1) : elInner.length - 1; elInner[current].classList.remove('is-visible'); elInner[next].classList.add('is-visible'); next = (++next < elInner.length) ? next : 0; setTimeout(switchImage.bind(this, next), duration)}; }; window.onload = switchImage.bind(this, defaultIndex);
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/12 09:47 編集
2020/04/12 09:21
2020/04/12 10:18
2020/04/12 16:59
2020/04/12 17:40