通常、間隔を変数に設定してからvar the_int = setInterval(); clearInterval(the_int);
のようにクリアしますが、コードが機能するように匿名関数に入れます:
function intervalTrigger() {
setInterval(function() {
if (timedCount >= markers.length) {
timedCount = 0;
}
google.maps.event.trigger(markers[timedCount], "click");
timedCount++;
}, 5000);
};
intervalTrigger();
これをクリアするにはどうすればよいですか?試しにvar test = intervalTrigger(); clearInterval(test);
を試してみましたが、うまくいきませんでした。
基本的に、Googleマップがクリックされたときにトリガーを停止するには、これが必要です。
google.maps.event.addListener(map, "click", function() {
//stop timer
});
setInterval
メソッドは、間隔をクリアするために使用できるハンドルを返します。関数がそれを返すようにしたい場合は、メソッド呼び出しの結果を返すだけです:
function intervalTrigger() {
return window.setInterval( function() {
if (timedCount >= markers.length) {
timedCount = 0;
}
google.maps.event.trigger(markers[timedCount], "click");
timedCount++;
}, 5000 );
};
var id = intervalTrigger();
次に、間隔をクリアします。
window.clearInterval(id);
// Initiate set interval and assign it to intervalListener
var intervalListener = self.setInterval(function () {someProcess()}, 1000);
function someProcess() {
console.log('someProcess() has been called');
// If some condition is true clear the interval
if (stopIntervalIsTrue) {
window.clearInterval(intervalListener);
}
}
the_int=window.clearInterval(the_int);