begin process at 2010 03 20 14:30:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Javascript

 > 

Archives

 > 

AU SECOURS !!!

 > 

Programmation objet et attachement d'evenement


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Programmation objet et attachement d'evenement

mercredi 4 janvier 2006 à 17:40:44 | Programmation objet et attachement d'evenement

MaX3315

Membre Club
Bonjour à tous,

Voici de façon simplifiez mon problème.

function monObjet(id)
{
    this.id=id;
    this.div=document.getElementById(id);

   this.overDiv=overDiv;

    if(document.all) { this.div.attachEvent('onmousemove',this.overDiv); }
    else { this.div.addEventListener('mousemove',this.overDiv,false);}
}

function overDiv()
{
    //PROBLEME
    //ici this.id me donnera pas l'id de l'objet javascript
    //comment contourner ce problème?
}

Si quelqu'un à une idée...  une fois ca résolu, j'aurai un nouveau script que je pense intéressant à poster sur codes sources ... du chantage? mais non mais non

MaX3315
mercredi 4 janvier 2006 à 22:02:46 | Re : Programmation objet et attachement d'evenement

PhiL666

normal dans ton cas ... le this envoyé sera l'object DIV
jétais tombé sur le même problème en faisant mon dernier script (http://www.javascriptfr.com/code.aspx?ID=35396)

pour remédier au prob., jai utilisé un tableau pour stocké les infos (plutôt que des objets)
et il te reste plus qu'à appeler la fonction overDiv avec leur id - overDiv(id)

un exemple de code vaut mille mots donc regarde rapidement mon script ;)
mercredi 4 janvier 2006 à 22:07:09 | Re : Programmation objet et attachement d'evenement

PhiL666

Réponse acceptée !
tu pourais à la limite stocké tes objets dans un tableau ... tjrs en utilisant des id
mercredi 4 janvier 2006 à 22:12:50 | Re : Programmation objet et attachement d'evenement

MaX3315

Membre Club
Réponse acceptée !
Ouep, ben c'est ce vers quoi je me suis diriger pour le moment, mais ca me donne un code vraiment pas très propre mix entre une programmation objet et classique.

En fait je crois qu'au final je vais enregistrer tous mes objets dans un array accessible depuis document. et j'ajoute une fonction findObj(id) qui retournera l'objet voulu...

Pour mon script en cours c'est par ici : http://codessources.votre-web.com/news_scroller_beta1.html
(je posterai une version propre et commenté dans les jours à venir).

Merci en tout cas de t'être penché sur le problème
mercredi 4 janvier 2006 à 22:13:38 | Re : Programmation objet et attachement d'evenement

MaX3315

Membre Club
Lol, les grands esprit se croise...
mercredi 4 janvier 2006 à 22:24:16 | Re : Programmation objet et attachement d'evenement
mercredi 4 janvier 2006 à 23:28:54 | Re : Programmation objet et attachement d'evenement

rrk275


En fait je crois qu'au final je vais enregistrer tous mes objets dans un array accessible depuis document. et j'ajoute une fonction findObj(id) qui retournera l'objet voulu...
 
pfffff...
    if(document.all) { this.div.attachEvent('onmousemove',function (){alert(id)}); }
    else {  this.div.addEventListener('mousemove',function (){alert(id)},false);

on peut meme pour racourcir
var mafonction = function (){alert(id)}//la ff est une variable de fonction !!
  if(document.all) { this.div.attachEvent('onmousemove',ff); }
  else {  this.div.addEventListener('mousemove',ff,false);

par contre ne mettrez pas de this.id !!! il le transformerait pas....
Il existe des solutions pour tout ... sans tout crader !!
en esperant ne pas etre arrivé trop tard ...
rrk275
mercredi 4 janvier 2006 à 23:42:11 | Re : Programmation objet et attachement d'evenement

MaX3315

Membre Club
Oups un peu tard... voici avec la soluce d'un tableau et d'une solution en 'global' : http://codessources.votre-web.com/news_scroller_beta2.html

Pour la soluce de rrk275 elel attendra une bonne nuit de sommeil... je rste toutefois assez ceptique puisque c'est la solution que j'avais tester en premier. Mais une fois les yeux à nouveau en fasse des trous je referrai un essai.

J'ai toutefois un gros point noir dans le dernier code....
il devrait y avoir un attachEvent('action',mafonction);  et pas attacheEvent('action',ff)... je vois pas d'ou il sort ce ff.

Est dans ce cas c'est exactement la même chose que mon code... et dans ce cas j'ai pas reussi à recuperer l'objet (au sens programmation objet)... et non pas objet du DOM...

Bonne nuit et à demain.
jeudi 5 janvier 2006 à 00:25:49 | Re : Programmation objet et attachement d'evenement

rrk275

a dsl le ff c'était ma variable de dans un autre code et j'avais pas relu mais je suis sur ca marche
 fin ca ne permet que la lecture de this.id.Et si ta solution n'a pas marché je pense que c'est parce que tu avait
mis this.id .. fin je ne peux pas lires tes codes non publiés ...


var mafonction = function (){over(id)}//la ff est une variable de fonction !!
  if(document.all) { this.div.attachEvent('onmousemove',mafonction); }
  else {  this.div.addEventListener('mousemove',mafonction,false);


rrk275

jeudi 5 janvier 2006 à 09:32:02 | Re : Programmation objet et attachement d'evenement

MaX3315

Membre Club
re-Bonjour

Alors voila exactement ce que je test

function MAX3315_Container(idNode)
{
    //initialisation
    this.id=idNode;
    this.obj=document.getElementById(this.id);
   
    //proprietes
    this.listNews=Array();
    this.currentIndex=0;
    this.inPause=false;
    this.initilised=false;

    //on ajoute les listener (pause au survole et click)
    if(document.all) { this.obj.attachEvent('onmousemove',this.overContainer); }
   
    //methodes / listener de l'objet Container
    this.overContainer=MAX3315_overContainer;
   
    //SOLUTION DU TABLEAU GLOBAL - FONCTIONNANT ACTUELLEMENT
    //enregistrement de l'objet dans la liste global
    this.indexInGlobalContainerList=MAX3315_globalListNewsScroller.length;
    MAX3315_globalListNewsScroller.push(this);
   
    return;
}

function MAX3315_overContainer(aEvent)
{
    //ici this devrait correspondre à l'instance de mon objet de class Container
    // or this reference l'objet du DOM du coup this.id === domNode.id
    // et non pas this.id===objectContainer.id
   
    //pour verifier cela rien de plus simple... si je fait this.uneAutrePropriete j'obtient toujours 'undefined'
    //alors que this.nodeName ou autre attribut du DOM me retourne bien
}


Voila donc le problème... je pense que pour comprendre ce qui me pose probleme il faut mieux ce dire que j'ai besoin de recupérer this.listNews  par exemple, une des propriete de l'object (class Container). Car il est toute à fait normal dans mon cas  de recupere this.id puisque this.id==DOMNode.id==object.id... mais sinon c'est pas bien grave, j'ai reussi a contourne le probleme de facon a peu pres potable.

Reste à rendre ca compatible safari et IE...


Cette discussion est classée dans : objet, programmation, id, div, overdiv


Répondre à ce message

Sujets en rapport avec ce message

connaitre la position (coordonnées) du curseur de la souris? [ par johanb ] Bonjour à tous, tous est dis dans le titre.Je sais c'est censé être qqc de basique, mais j'ai du mal. Voici l'origine de mon probleme: j'ai une liste Bouton radio (affichage de div suivant le choix) [ par Scooper ] Bonjour,Je suis en train de créer un système de questionnaire en PHP/MySQL où suivant le choix de l'utilisateur, telle ou telle question s'affiche à l Trouvez l'erreur ! (redimmensionner un DIV) [ par supergrey ] Donc voila j'ai mis un DIV qui contient une image et je voudrais que ce calque diminue jusqu'a disparaitre, voila mon code:function Diminuer(){   widt coucou , je suis dans la M...... [ par frvfrvfrvfrv ] salut à tous,j'essaye de faire bouger des div , de facon auto , j'ai deja avancer grace à vous tous. Mais pour la suite j'arrive pas a faire la logiqu [DOM]Conserver une valeur après ajout d'un child [ par malalam ] Hello,le titre n'est pas super clair parce que je ne savais pas comment résumer.J'appelle une fonction sur un évènement (onchange d'un select : bref, Comment atteindre un objet au-dessus de l'objet document ? [ par sbertho ] Dans une page, je crée dynamiquement une div avec un id. Cette div contient un table contenant un iframe.Cette iframe fait appel à une page HTML.Dans document.getElementById() .div [ par abdoulax ] Bonjour, Je voulais faire un truc du genre : document.getElementById(id).div.style.paddingTop="0px"; En faite je veux modifier le style des div enfa Ouvrir un div + drag&drop [ par yanis7518 ] Salut a tousvoila j'ai une page avec un div fermé(mais que l'on peut ouvrir en cliquant sur un bouton) dans ce div je peux faire des drag&drop d'objet Ajouter un Div dans un li [ par yanis7518 ] Salut a tous je souhaiterais pouvoir créer et ajouter des div dans des balises li créées dynamiquementvoici mon code    var newLi= document.createElem addEventListener et objet avec this [ par Shinji49 ] Bonjour,J'ai beau rechercher partout, je ne trouve pas la solution ! J'ai tout essayé mais rien n'y fait.Alors, voila, je souhaite ajouter une fonctio


Nos sponsors


Sondage...

Comparez les prix


HTC Hero

Entre 550€ et 550€

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,226 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales