2011-08-09 3 views

Répondre

1

Vous devez passer une fonction anonyme en tant que gestionnaire pour "passer la souris". Sinon, Javascript tentera d'évaluer et d'appeler le retour de clearInterval (dans ce cas, un entier!). Le code suivant fonctionnera:

YUI().use("console", "console-filters", "substitute", "node-event-simulate", 
    function(Y) { 
    console.log("YUI is ready"); 

    var doSomething = function(e) { 
     Y.one("#seconds").append("<p>I am number four</p>"); 
    }; 

    IntervalId = setInterval(doSomething, 1000); 
    //Notice the anonymous function below: 
    Y.one("#clearInt").on('mouseover', function() { clearInterval(IntervalId) }); 
}); 

Voici votre JSBin, TPTA. Prendre plaisir!

+0

Merci, tout en utilisant IntervalId = setInterval (doSomething, 1000); ne fonctionne pas, et lors de l'utilisation sans ID [setInterval (doSomething, 1000);] son ​​fonctionnement. pourquoi donc? –

+0

Avez-vous regardé ma mise à jour [JSBin] (http://jsbin.com/awadek/11)? Il semble fonctionner très bien avec InternalId et la fonction anonyme. Pourquoi votre exemple original fonctionnerait ou ne fonctionnerait pas en fonction de IntervalID est une question plus compliquée (il s'agit de * appeler * un objet entier par rapport à un objet indéfini). – ghayes

Questions connexes