したがって、setInterval をオブジェクト プロパティとして保存したいと思います。なぜなら、すぐに開始するローテーターを説明するために「autoPlay」というフレーズをよく使用するからです。一連のスクリプトで「autoPlay」を複数回使用すると、それらをクリアしようとすると、どのスクリプトをクリアするかわからないため、JS がつまずきます。私の救済策は、「newsRotator.autoPlay」のようなオブジェクトを介してアクセスできるように、プロパティとしてどこかに置くことです。問題は、通常は次のように基本的な変数に配置されるため、その方法で保存する方法がわからないことです。
autoPlay = setInterval(this.forwardSlide, 5000);
これは、間隔をクリアできないオブジェクト プロパティとして格納しようとした私の試みの 1 つです。
var newsRotator = {
run: function () {
$('.arrow').on('click', function (e) {
e.preventDefault();
clearInterval(newsRotator.autoPlay);
if ($(this).hasClass('back')) {
newsRotator.backSlide();
} else {
newsRotator.forwardSlide();
}
});
},
backSlide: function () {
(goes back one slide)
},
forwardSlide: function () {
(goes forwardone slide)
},
autoPlay: setInterval(this.forwardSlide, 5000),
init: function () {
this.run();
}
}
newsRotator.init()