Bonjour,

J'ai développé un slider maison en javascript.

Ce que je fais

J'ai fait de mon slider un objet et je souhaite que toute la logique se trouve du côté de cet objet.
Qu'une simple instanciation de cet objet suffise à le faire fonctionner.

Dans le constructeur de l'objet j'appelle une méthode init qui est bien exécutée.


Slider.prototype.init = function () {

  if (this.interval != 'none') {
    this.autoslide();
  }

  // Clique sur une fleche
  $('#' + this.id + ' [data-action]').on('click', function (e) {
  // mon problème est que this réfère au lien cliqué et non à l'objet slider
    this.slide();
  });
}

Ce que je veux

Je veux que cette méthode init mette en place la gestion de l'événement "clic sur une flèche du slider" => execute la méthode slide.

Ce que j'obtiens

Malheureusement dans le contexte de l'événement "click" le this ne réfère plus à mon objet mais au lien cliqué. Ce qui provoque l'erreur "this.slide is not a function".

Merci d'avance pour votre aide.

Aucune réponse