2017-01-20 3 views
0

Der Versuch, eine Funktion zu erhalten, die kontinuierlich ausgeführt wird, wenn die Maus über einem div ist. Wie kann ich die repeat() -Funktion nur ausführen, wenn die Maus über dem div ist?Wiederholte Ausführung der Funktion bei Mouseover

function repeat(){ 
    window.setInterval(console.log("Mouse is on image"), 1000)}; 
$("div.mainGif").mouseover(repeat()); 

ich es auch versucht, auf diese Weise eine anonyme Funktion, mit

$("div.mainGif").mouseover(function(){window.setInterval(console.log("Mouse is on image"), 1000)}); 

Aber das überhaupt nicht funktioniert.

+1

Es müsste '$ sein („div.mainGif“) Mouseover (Wiederholung);' da Sie sollen eine passieren ' Funktion 'zu' mouseover() '(nicht was auch immer diese Funktion zurückgibt). – connexo

+0

Ok, ich habe diese Änderung gemacht, funktioniert aber immer noch nicht. Danke –

+1

Sie müssen eine Funktion an 'setInterval' übergeben. Überprüfen Sie meine aktualisierte Antwort. – connexo

Antwort

2

prüfen diese und geben Sie uns einen Hinweis, wie es geht.

var interval; 
function repeat(){ 
    interval = window.setInterval(function() { console.log("Mouse is on image") }, 1000) 
}; 
$("div.mainGif").on({ 
    mouseover: repeat, 
    mouseout: function() { window.clearInterval(interval); } 
}); 
+0

Ausgezeichnet, das funktioniert und das eingestellte Intervall zu löschen. Ich machte auch einen Fehler mit div. Da diese Klasse auf einem Img-Tag steht, brauchte ich entweder img.mainGif oder nur .mainGif. Danke noch einmal! –

Verwandte Themen