0 votes

MooTools Fx.Slide jeter this.element est nul

Le code suivant renvoie l'erreur "this.element is null". Cependant, le wid_cont saisit certainement un élément.

window.addEvent('domready',function(){
 var min = $(document.body).getElements('a.widget_minimize');
 min.addEvent('click',
  function(event){
   event.stop();
   //var box = ;
   var wid_cont = ($(this).getParents('.widget_box').getElement('.widget_box_content_cont'));
   var myVerticalSlide = new Fx.Slide(wid_cont);
   myVerticalSlide.slideOut();
  }
 );
});

C'est MooTools 1.2.4 et a le fx.slide inclus....

1voto

Dimitar Christoff Points 18439

Il ne renvoie pas un seul élément mais un tableau en raison de getParents() et éventuellement d'autres éléments marqués de manière similaire, Fx.Slide nécessite que vous lui passiez un seul élément.

voici au moins partiellement fonctionnel lors du passage du premier élément du tableau : http://www.jsfiddle.net/KFdnG/

cependant, cela est à mon avis inefficace et difficile à gérer si vous avez une longue liste d'éléments et avez besoin qu'un contenu particulier se déplie uniquement, vous souhaitez garder la recherche du contenu plus locale.

quelque chose comme ceci : http://www.jsfiddle.net/KFdnG/4/

// stockez une instance dans chaque div de contenu et définissez l'état initial sur masqué.
$$("div.widget_box_content_cont").each(function(el) {
    el.store("fxslide", new Fx.Slide(el).hide());
});

$$('a.widget_minimize').addEvent('click', function(event) {
    event.stop();
    // ne peut pas utiliser this.getNext() en raison de l'emballage par Fx.Slide qui n'a pas l'instance.
    this.getParent().getElement("div.widget_box_content_cont").retrieve("fxslide").toggle();
});

qui fonctionne sur la balise :

        lien

            un contenu

        lien 2

            un contenu 2

ceci est également mieux car vous ne créerez pas une nouvelle instance de la classe Fx.Slide à chaque clic mais vous ferez référence à celles déjà attachées à l'élément.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X