Appel d'une méthode d'un objet par un bouton creer par lui

Mammouth du PHP | 1967 Messages

10 sept. 2012, 00:39

Bonjour à tous,

J'ai besion de votre aide, j'ai un objet qui à sa création ajoute plusieurs boutons à mon html, j'aimerais que ces boutons agissent sur une variable de cet objet.
Dans l'objet, je n'ai aucune idée de la variable qui contient son instance, sinon je pourrais l'utiliser pour faire appel à ma variable ou une fonction de cet objet. Comment puis je faire ?
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

ViPHP
ViPHP | 1996 Messages

13 sept. 2012, 21:51

Un peu de Jquery...
<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.1.min.js"></script>
	<SCRIPT type="text/javascript"> 
	$(document).ready(function(){
		var bouton = document.createElement('input');
		$(bouton).attr({type:'button', value:'Cliquez Moi'}).css({margin:'15px',height:'30', width:'100', display: 'block'});
		$(document.body).prepend($(bouton));
	});
	
	$(document).on({
		click : function(){		
			var bouton = document.createElement('input');
			$(bouton).attr({type:'button', value:'Cliquez Moi'}).css({margin:'15px',height:'30', width:'100', display: 'block'});
			$(document.body).prepend($(bouton));
		}
	},'body input[type="button"]');
	</SCRIPT>
</head>
<body>
	<input type='button
</body>
</html>
L'exemple te montre la création d'un premier bouton lors du chargement de la page. Ensuite quand tu clic sur ce bouton, cela créé un autre bouton. Mais tu peux aussi lancer une autre fonction créé un div, ... lors du clic sur ce bouton. Ex :
<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.1.min.js"></script>
	<SCRIPT type="text/javascript"> 
	$(document).ready(function(){
		var bouton = document.createElement('input');
		$(bouton).attr({type:'button', value:'Cliquez Moi'}).css({margin:'15px',height:'30', width:'100', display: 'block'});
		$(document.body).prepend($(bouton));
		var inputTexte = document.createElement('input');
		$(inputTexte).attr({type:'text'}).addClass('inputText');
		$(document.body).prepend($(inputTexte));
	});
	
	$(document).on('click','body input[type="button"]',houlala);
	
	function houlala (event){
		if ($('.inputText').val().length > 0)
		{
			var div = document.createElement('div');
			$(div).prepend('<p>'+$('.inputText').val()+'</p>').css({margin:'15px',height:'100', width:'100', display: 'none', backgroundColor : 'red'});
			$(document.body).append($(div));
			$(div).show('slow');
			$('.inputText').attr({value:''});
		}
		else
		{
			alert ('Aucune donnée entrées dans l\'input');
		}
	}
	</SCRIPT>
</head>
<body>
	<input type='button
</body>
</html>
Le deuxième exemple te montre qu'en cliquant sur le bouton il y a création d'un div qui prends ce qui a dans l'input. Les exemples sont multiples. Reste ton imagination.
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Mammouth du PHP | 1967 Messages

14 sept. 2012, 00:44

Je ne connais rien en Jquery, je n'ai jamais mis les mains de ce cambui là.

Mais il ne me semble pas que cela solutionne mon problème. Je le redétaille
J'ai un objet qui s'occupe, lorsqu'il est appelé de dessiner dans un canvas. Il y a une boucle de rafraichissement pour afficher tout changement des variable interne de l'objet. Lors de son instanciation, il crée plusieurs boutons, différents outils pour modifier le dessin. c'est un peu comme si je faisit un équivalent paint en javascript. J'aimerais comprendre comment programmer pour que l'appui d'un bouton éxécute la méthode changeTool('outil') de mon objet.

J'ai temporairement solutionné le problème avec un sparadrap qui fonctionne mais je sais pas vraiment comment. Une sorte d'objet non instancié qui peut me relayer l'information. Mais si j'instancie 2 fois l'objet dans ma page, seul le premier tableau de controle fonctionne et agi sur le 2ème canvas. Donc tant que je n'ai pas besoin d'instancier deux fois cet objet ca va mais j'aimerais avoir cette possibilité.


Edit :
En réfléchissant, j'ai pensé que je pourrais demander à l'objet de vérifier quelle bouton est actif plutot que de demander au bouton de s'identifier. Que pensez vous de cette vision des choses ?
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

ViPHP
ViPHP | 1996 Messages

14 sept. 2012, 17:03

Edit :
En réfléchissant, j'ai pensé que je pourrais demander à l'objet de vérifier quelle bouton est actif plutot que de demander au bouton de s'identifier. Que pensez vous de cette vision des choses ?
C'est l'avantage de Jquery : il peut savoir sur quel bouton tu as appuyé. Sinon je pense que ton idée est bonne
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr