Vous pourriez faire quelque chose comme ceci: http://jsbin.com/uzixi3/5/edit
La partie d'intervalle est ici:
var int = setInterval($.fn.nextSlide, 3000);
$("#slideNavigation a").click(function() {
clearInterval(int);
setTimeout(function() {
setInterval($.fn.nextSlide, 3000);
}, 10000);
});
J'ai fait quelques autres tweaks aussi bien que, pour Par exemple, vous pouvez utiliser une instruction switch
pour rendre .nextSlide()
beaucoup plus lisible et moins cher.
dans l'ensemble, il n'y a aucune raison de faire ces fonctions comme les méthodes d'extension sur jjquery lui-même, car ils n'interagissent pas avec des objets, ils peuvent juste être des méthodes scope à la fermeture comme ceci: http://jsbin.com/uzixi3/6/edit
Si les méthodes étaient en cours d'exécution sur $('#slideContainer')
, par exemple $('#slideContainer').nextSlide()
et à l'intérieur de vos méthodes que vous avez utilisé this.animate()
et this.css()
cela pourrait faire un peu plus de sens, juste quelques réflexions qui peuvent vous aider à devenir plus flexible au fur et à mesure.
Un dernier, ne passez pas une chaîne à 'setInterval()' ou 'setTimeout()', passer une référence de fonction directe comme dans ma révision, vous ll évitera beaucoup de maux de tête de cette façon, et il est plus efficace de démarrer :) –