| 

.NET C# Java Javascript Exception

1
Hallo

Ich habe eine Funktion:

function musikabspielen (counterzeit) {

var audioElement;
setTimeout(function(){
audioElement = new Audio("");
document.body.appendChild(audioElement);
var canPlayType = audioElement.canPlayType("audio/ogg");
if(canPlayType.match(/maybe|probably/i)) {
audioElement.src = '/audio/gong.ogg';
} else {
audioElement.src = '/audio/gong.mp3';
}
audioElement.addEventListener('canplay', function() {
audioElement.play();
}, false);

alert("Zeit abgelaufen");
return false;
}, counterzeit);
}


Nach einer gewissen Zeit kommt ein Ton & eine Alert Box.
Klicke ich auf weiter, wird der Div ausgeblendet, der nächste kommt und wieder läuft die Zeit und dann kommt der Gong + Alert.

Das klappt soweit.
$(".weiter").live("click", function() {

musikabspielen(5000);

$(".inhalte").hide("fast");
var navi_id = $(this).attr("id");
navi_id = navi_id.replace('vor_','');
$("#" + navi_id).fadeIn("fast");

return false;
});



Das Problem:
Wenn ich vor der Zeit auf weiter klicke und der nächste Div kommt, dann kommt trotzdem noch der Ton und die Alert Box vom vorherigen Teil.

Wie kann ich die komplette Funktion bzw. das setTimeout löschen, sobald ich auf ".weiter" klicke? Das immer nur einer aktiv sein kann?

Bin für Tipps dankbar :)
LG
meone
01.08.2013
meone 109 1 6
meone 109 1 6
2 Antworten
2
Das geht mit der clearTimeout(int timeoutToken)-Funktion.

var timeoutToken;
function Starten() {
timeoutToken = window.setTimeout(function(){/*code*/}, 1000);
}

function Stoppen() {
window.clearTimeout(timeoutToken);
}
01.08.2013
Floyd 14,6k 3 9
0
Dank dir. Muss eine Variable bekommen und ein clearTimeout, so einfach kann's sein.
01.08.2013
meone 109 1 6

Stelle deine Javascript-Frage jetzt!