-PR-
締切済み

アロー関数で変数に入れて名前のある関数にする

  • すぐに回答を!
  • 質問No.9320035
  • 閲覧数114
  • ありがとう数0
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 66% (194/293)

JSでsetTimeoutでのスライドショーの停止、再生がうまくいきません。

http://codepen.io/anon/pen/RVNgLr

問題なく動いているので、停止再生の部分以外は間違えがないと思うのですが、
停止再生の部分に問題はありますでしょうか?
抜粋しておきました。

let iterative = ()=> {
setTimeout(myChange , 5000); //
}

const pauseBtn = document.getElementById('js-pause-btn');
pauseBtn.addEventListener('click', ()=> {
clearTimeout(iterative);
});


停止は下記でできるがこれですと名前のある関数にできないので再度動かすことができないのです。

let iterative = {
setTimeout(myChange , 5000); //
}

pauseBtn.addEventListener('click', ()=> {
clearTimeout(iterative);
});

const playBtn = document.getElementById('js-play-btn');
playBtn.addEventListener('click', ()=> {
iterative();
});

pauseBtn.addEventListener('click', ()=> {
clearTimeout(iterative);
});



iterative();はiterativeという名前の関数を作らないと実行できないので、停止できない理由はわかっているのですが、アロー関数で変数に入れて名前のある関数にすることができないのでどうすれば両方とも実現できるのかわかりません。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全2件)

  • 回答No.1
レベル11

ベストアンサー率 49% (153/308)

clearTimeoutに渡すのはsetTimeTimeoutの戻り値である数値です
何度も繰り返したければ、setIntervalの方を使ってください
myChangeとはなんですか?動くコードを書いてください


  • 回答No.2
レベル12

ベストアンサー率 59% (285/482)

この質問はstackoverflowの質問の続き(マルチポスト)なので、回答される方は下記スレッドを参照する事をお勧めします。

javascript - JSでsetTimeoutでのスライドショーの停止、再生がうまくいきません。 - スタック・オーバーフロー
https://ja.stackoverflow.com/questions/34064/js%e3%81%a7settimeout%e3%81%a7%e3%81%ae%e3%82%b9%e3%83%a9%e3%82%a4%e3%83%89%e3%82%b7%e3%83%a7%e3%83%bc%e3%81%ae%e5%81%9c%e6%ad%a2-%e5%86%8d%e7%94%9f%e3%81%8c%e3%81%86%e3%81%be%e3%81%8f%e3%81%84%e3%81%8d%e3%81%be%e3%81%9b%e3%82%93

質問の範囲は非常に広い(回答する度に基礎的な内容の質問が追加で来ます)ので、覚悟の上、回答する必要があります。

Re: htmlcss123 さん
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ