Poster une réponse  Créer un sujet 
Pages (3): « Première [1] 2 3 Suivante > Dernière »
[Résolu][Javascript] document.getElementById('').onclick
Auteur Message
Raitosan
Membre


Messages : 84
Groupe : Membre
Inscription : Jul 2008
Statut : Hors ligne
Réputation : 0
Message : #1
[Résolu][Javascript] document.getElementById('').onclick

Bonjour, j' ai un problème avec le Javascript.

Voici ce qui ne fonctionne pas. le problème c' est que objet_place et nb sont des variables, donc je ne peut pas faire .onclick = menu(); et .onclick = function(){menu(event, objet_place, '0', nb);} ne marche pas non plus(j' ai chercher sur google...)

document.getElementById(objet_place).onclick = menu(event, objet_place, '0', nb);

j' ai fait cela, pour actualiser la variable "nb" qui se trouve dans la fonction. Parceque sinon la variable "nb" reste pareil et ne change pas le nombre...

Voila, en espérant que vous puissiez m' aider...
Merci d' avance.


Watashi wa Raitosan desu, Kira jaa nai!

Même un vert de terre peut battre un Tigre.

Ce message a été modifié le: 08-23-2008 12:45 PM par Sephi-Chan.

08-13-2008 05:25 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
oxman
Membre


Messages : 680
Groupe : Membre
Inscription : May 2008
Statut : Hors ligne
Réputation : 10
Message : #2
RE: Problème JS: document.getElementById('').onclick

C'est marrant ça au boulot un collègue avait exactement le même problème.
Je lui ai résolu en lui montrant qu'il pouvait très bien faire sans ses variables.

Déjà objet_place ne te sert à rien tu peux utiliser this, à quoi te sert event ?

Edit : Enfin non tu ne peux pas utiliser this tu es pas dans un Framework, enfin a quoi te servent ces variables ?

Ce message a été modifié le: 08-13-2008 05:35 PM par oxman.

08-13-2008 05:31 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Raitosan
Membre


Messages : 84
Groupe : Membre
Inscription : Jul 2008
Statut : Hors ligne
Réputation : 0
Message : #3
RE: Problème JS: document.getElementById('').onclick

a modifier l' affichage des divs, changer leurs fonds, et transmettre des données dans un fichier php


Watashi wa Raitosan desu, Kira jaa nai!

Même un vert de terre peut battre un Tigre.
08-13-2008 05:49 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
oxman
Membre


Messages : 680
Groupe : Membre
Inscription : May 2008
Statut : Hors ligne
Réputation : 10
Message : #4
RE: Problème JS: document.getElementById('').onclick

Donne ta fonction menu

08-13-2008 05:51 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Raitosan
Membre


Messages : 84
Groupe : Membre
Inscription : Jul 2008
Statut : Hors ligne
Réputation : 0
Message : #5
RE: Problème JS: document.getElementById('').onclick

function menu(event, objet_place, objet_type, nb)
{
var x = event.clientX;
var y = event.clientY;
document.getElementById('menu_choix').style.top = y;
document.getElementById('menu_choix').style.left = x;
if(objet_type != "")
{
document.getElementById('menu_choix').innerHTML = '<div id="menu_choix2" onclick="utiliser('+objet_place+')">Utiliser</div><div id="menu_jeter" onclick="jeter('+objet_place+', '+nb+', '+objet_type+')">Jeter</div><div id="menu_jeter" onclick="jeterTout('+objet_place+')">Jeter Tout</div>';
}
else
{
document.getElementById('menu_choix').innerHTML = '<div id="menu_choix2" onclick="equiper('+objet_place+', '+nb+')">Equiper</div><div id="menu_jeter" onclick="jeter('+objet_place+', '+nb+', '+objet_type+')">Jeter</div><div id="menu_jeter" onclick="jeterTout('+objet_place+')">Jeter Tout</div>';
}
document.getElementById('menu_choix').style.backgroundColor='#9f9fff';
document.getElementById('menu_choix').style.border='1px solid black';
}


Watashi wa Raitosan desu, Kira jaa nai!

Même un vert de terre peut battre un Tigre.
08-13-2008 05:52 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
oxman
Membre


Messages : 680
Groupe : Membre
Inscription : May 2008
Statut : Hors ligne
Réputation : 10
Message : #6
RE: Problème JS: document.getElementById('').onclick

Je n'ai pas l'impression que tu utilises la bonne méthode.
Tu devrais plutôt créer tous tes div et les cacher/montrer ensuite.

08-13-2008 05:56 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Raitosan
Membre


Messages : 84
Groupe : Membre
Inscription : Jul 2008
Statut : Hors ligne
Réputation : 0
Message : #7
RE: Problème JS: document.getElementById('').onclick

enfait, la fonction menu sert à affiche un menu quand on clique sur un objet(dans l' inventaire). Ce menu propose selon l' objet, d' utiliser, d' équiper, de jeter ou de tout jeter... c' est pour sa que sa doit être invisible, mais ce n' est pas le problème, cette fonction marche bien -_-, c' est juste le document.getElementById(objet_place).onclick = menu(event, objet_place, '0', nb);
voici la fonction qui a cet element:
function equiper(objet_place, nb)
{
efface_menu();
var xhr_object = null; // On crée déjà la variable xhr_object

if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}

xhr_object.open("GET", "equiper.php?objet_place="+objet_place+"", true); // On ouvre le script php en designant si on utilisera GET ou POST comme méthode, dans notre cas on va utiliser GET, ensuite on mets le chemin du script php, puis on dit si on veut utiliser l'asynchrone(true) ou le synchrone(false, qui signifie figer le temps de la requete qui risque de bloquer le visiteur) donc on vas prendre l'asynchrone donc on met true.

xhr_object.onreadystatechange = function() { // Si le readyState change alors on execute ce qui est en bas
if(xhr_object.readyState == 4 && xhr_object.status == 200) // Si le readyState vaut 4 ce qui veut dire que les données ont été transmise et si le Status vaut 200 ce qui signifie que le navigateur n'a aucun problème
{
if(xhr_object.responseText != '')
{
var message_recu = xhr_object.responseText;
var tab = message_recu.split(" ");

if(tab[0] == "boucle")
{
if(tab[3] == 1)
{
document.getElementById(''+objet_place+'').innerHTML = '';
document.getElementById(''+objet_place+'').style.backgroundImage = 'none';
document.getElementById(''+objet_place+'').onclick = '';

document.getElementById(''+tab[2]+'').style.backgroundImage = 'url('+tab[1]+'.png)';
}
else
{
nb--;
document.getElementById(''+objet_place+'').innerHTML = nb;
document.getElementById(''+tab[2]+'').style.backgroundImage = 'url('+tab[1]+'.png)';
document.getElementById(objet_place).onclick = menu(event, objet_place, '0', nb);
}
}
}
else
{
alert('Un équipement est deja équiper!');
}
}
}

xhr_object.send(null);
}


Watashi wa Raitosan desu, Kira jaa nai!

Même un vert de terre peut battre un Tigre.
08-13-2008 06:00 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
oxman
Membre


Messages : 680
Groupe : Membre
Inscription : May 2008
Statut : Hors ligne
Réputation : 10
Message : #8
RE: Problème JS: document.getElementById('').onclick

document.getElementById(objet_place).onclick = menu(event, objet_place, '0', nb);
Il est censé les trouver où tes variables ?

08-13-2008 06:05 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Raitosan
Membre


Messages : 84
Groupe : Membre
Inscription : Jul 2008
Statut : Hors ligne
Réputation : 0
Message : #9
RE: Problème JS: document.getElementById('').onclick

equiper(objet_place, nb)

event c' est pour récupérer les points x et y de la souris -_-


Watashi wa Raitosan desu, Kira jaa nai!

Même un vert de terre peut battre un Tigre.
08-13-2008 06:06 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
oxman
Membre


Messages : 680
Groupe : Membre
Inscription : May 2008
Statut : Hors ligne
Réputation : 10
Message : #10
RE: Problème JS: document.getElementById('').onclick

Ah oui pardon.
Il faut que tu accèdes globalement aux variables.
Ne pas les passer en arguments et les lire globalement.

08-13-2008 06:14 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Poster une réponse  Créer un sujet 

Voir une version imprimable
Envoyer ce sujet à un ami
S'abonner au sujet | Ajouter le sujet aux favoris