Div inaccessible en JS

Fermé
nico_73 Messages postés 161 Date d'inscription mercredi 10 juin 2009 Statut Membre Dernière intervention 28 mai 2010 - 19 oct. 2009 à 16:28
vindicien Messages postés 131 Date d'inscription vendredi 6 mars 2009 Statut Membre Dernière intervention 22 février 2011 - 21 oct. 2009 à 16:31
Bonjour à tous,

Peut être que vous pourrez m'expliquer pourquoi...

J'ai une fonction dans un classe qui créer une div et d'autres éléments à l'intérieur. Dans cette même méthode je peux inter-agir avec la div créée et ses éléments.

Par contre, dans un souci de factorisation de certaines parties du code, je l'ai mis dans d'autre fonctions (méthodes). Ces autres méthodes, par exemple une qui me permets de récupérer le nœud ou l'utilisateur à cliqué, n'arrivent pas à inter-agir avec les éléments créés par la fonction d'écrite en premier.

J'espère être claire et que vous pourrez m'éclaircir sur ce point ?

merci beaucoup d'avance.

Bien cordialement.
A voir également:

2 réponses

vindicien Messages postés 131 Date d'inscription vendredi 6 mars 2009 Statut Membre Dernière intervention 22 février 2011 33
19 oct. 2009 à 17:32
je pense qu'un peu de code pourrait vachement aider ;-)

Vind'
0
nico_73 Messages postés 161 Date d'inscription mercredi 10 juin 2009 Statut Membre Dernière intervention 28 mai 2010
19 oct. 2009 à 19:02
Oui j'ai pas mis le code pensant que ce soit une généralité. Mais je vais faire en sorte de donner un exemple :
wind = {
	id : 0,

	zIndex : 0,

	left : 0,
	
	top : 0,
	
	maxMin : 0,
	
	init : function() {
		$('#window_'+wind.id+' .topWindow').parent('div').draggable({
			start : function(event, ui) {
				wind.zIndex++;
				$(this).css('z-index', wind.zIndex);
			},
		});
	},
	
	newWind : function(left, top) {
		wind.id ++;
		var content = '',
		
		$('body').append(wind.newWindow(content));

		wind.left = left;	
		wind.top = top;
		
		$('#window_'+wind.id).css('left', wind.left);
		$('#window_'+wind.id).css('top', wind.top);
		
		return;
	},
	
	newWindow : function(content) {
		var xhtml = '';

		xhtml += '<div class="window" id="window_'+wind.id+'" style="z-Index: ' + (wind.zIndex + 1) + ';">';
		xhtml += '<div class="topWindow">';
		
		xhtml += '<div class="minimizeButtom_actMan windowButtons">_</div>';
		xhtml += '<div class="maximizeButtom_actMan windowButtons">+</div>';
		xhtml += '<div class="closeButtom_actMan windowButtons">X</div>';
		
		xhtml += '</div>';
		xhtml += '<div class="middleWindow">';
		xhtml += content;		
		xhtml += '</div>';
		xhtml += '<div class="bottomWindow"></div>';
		xhtml += '</div>';
		return xhtml;
	},
};


la méthode newWindow c'est le code html à afficher. Dans un lien, j'appelle la méthode newWind qui crée ma fameuse "div" et la méthode init, me permets de déplacer la div. Tout ca avec jQuery

Le souci dans cette exemple, c'est que la fonction init n'arrive pas accéder à la div. Pourtant, "wind.id" est un attribut accessible dans toutes les fonctions. Un peu comme ne PHP ou on fait référence de cette facon "$this->id".

Voyez vous maintenant ?
;)
0
vindicien Messages postés 131 Date d'inscription vendredi 6 mars 2009 Statut Membre Dernière intervention 22 février 2011 33
21 oct. 2009 à 16:31
Désolé pour le retard, et aussi désolé de ne pas pouvoir t'aider...
Je ne vois pas ce qui cloche à première vue...
Si j'ai le temps je regarderai ça plus en détail.
Et si entre temps tu trouves le problème la réponse m'intéresse ;-)

Bonne soirée,

Vind'
0