11550 sujets

JavaScript, DOM et API Web HTML5

Bonjour Smiley smile

Voici mon code js chargé au début de mon script (après celui de Mootools bien sûr) :

// SLIDES

window.addEvent('domready', function(){

  // Affiche
  var affiche = new Fx.Slide('affiche', {duration: 700});
  
  addEvent('load', function(e){
  	e = new Event(e);
  	affiche.hide();
  	e.stop();
  });

  $('cm_affiche').addEvent('click', function(e){
  	e = new Event(e);
  	affiche.toggle();
  	e.stop();
  });
  
  $('cm_affiche').addEvent('click', function(){changer_texte_toggle('cm_affiche');});
  
  // Infos film
  var infos_film = new Fx.Slide('infos', {duration: 700});
  
  addEvent('load', function(e){
  	e = new Event(e);
  	infos_film.hide();
  	e.stop();
  });

  $('cm_infos').addEvent('click', function(e){
  	e = new Event(e);
  	infos_film.toggle();
  	e.stop();
  });
  
  $('cm_infos').addEvent('click', function(){changer_texte_toggle('cm_infos');});

  // Infos UP
  var infos_up = new Fx.Slide('infos_up', {duration: 700});

  $('cm_infos_up').addEvent('click', function(e){
  	e = new Event(e);
  	infos_up.toggle();
  	e.stop();
  });
  
  $('cm_infos_up').addEvent('click', function(){changer_texte_toggle('cm_infos_up');});
  
  // Autres
  var autres = new Fx.Slide('autres', {duration: 700});

  $('cm_autres').addEvent('click', function(e){
  	e = new Event(e);
  	autres.toggle();
  	e.stop();
  });
  
  $('cm_autres').addEvent('click', function(){changer_texte_toggle('cm_autres');});


  
});


Logiquement ça devrait pas me foutre d'erreurs si tous les objets concernés par le script ne sont pas présent (grâce à DOMready).

Or, voici mon erreur sous Firebug :
a écrit :

this.element has no properties
initialize("affiche", Object duration=700)mootools.js (line 4457)
merged()mootools.js (line 454)
klass()mootools.js (line 361)
(no name)()fonctions.js (line 75)
returns()mootools.js (line 1424)
(no name)(undefined)mootools.js (line 1429)
fireEvent(function())mootools.js (line 2899)
fireEvent("domready", undefined, undefined)mootools.js (line 2900)
domReady()mootools.js (line 3605)
returns()mootools.js (line 1424)
(no name)(DOMContentLoaded )mootools.js (line 1429)
[Break on this error] this.wrapper = new Element('div', {'styles': $extend(this.element.getStyles('m...


J'en appelle à votre expérience Smiley cligne
Merci !
Modifié par wizardman (22 Apr 2008 - 19:48)
Ben SI,
c'est pas parce que tu fais du DOMready que forcément, il ne te sortira pas d"erreur s'il manque des éléments.

Pour chaque élément tu testes simplement s'il existe en faisant :


var elm = $('truc')
if (elm) 
   elm.addEvent('click', function() {})....
etc.....


Ya pas d'autre solutions et c'est un concepte de base en JS, on teste l'élément avant de jouer avec