こんにちは、私はsetInterval
をもう一度有効にすることはできませんし、私の"mute"
ボタンのクラスは変更されません。私のコードクリックして無効にして、setIntervalを有効にする
HTML:
<a href="#" class="MuteOff">button</a>
ボタン:
$('.MuteOn').on('click tap touch', function() {
$('.MuteOn').removeClass("MuteOn").addClass("MuteOff"); //the class changes
clearInterval(MyTimer);
});
$('.MuteOff').on('click tap touch', function() {
$('.MuteOff').removeClass("MuteOff").addClass("MuteOn"); //the class doesn't change back to MuteOn
MyTimer = setInterval(Checker, 100); //doesn't work
});
は機能:
var MyTimer = setInterval(Checker, 100);
function Checker(){
if ($("body").hasClass("fp-viewing-1")) {
audio1.play();
}
else {
audio1.pause();
audio1.currentTime = 0;
}
if ($("body").hasClass("fp-viewing-2")) {
audio2.play();
}
else {
audio2.pause();
audio2.currentTime = 0;
}
if ($("body").hasClass("fp-viewing-3")) {
audio3.play();
}
else {
audio3.pause();
audio3.currentTime = 0;
}
}
は
私は、ミュートボタンとするときクリック用の共通クラスを追加MuteOn/MuteOffクラスを確認する(またはブール値を使用)し、あなたが何をする必要があるかだろう。ロード時にMuteOffのクリックが機能しない – Huangism
'(" .MuteOff ")。on(...)'のようなイベントバインディングがヒットした場合、そのセレクタを満たす要素にイベントをアタッチします。しかし、このコード行がヒットしたときのように、このクラスを持つアイテムはないようです。このクラスは、ボタンがクリックされたときに後で追加されます。あなたのイベントは大丈夫ですが、何も付いていません。あなたは@Huangismのような共通のクラスを使うことができますが、[Event Delegation](https://stackoverflow.com/questions/8110934/direct-vs-delegated-jquery-on)で勉強することは間違いありません。 。 – Santi