IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

href="javascript:display( this )"


Sujet :

JavaScript

  1. #1
    Membre confirm�
    Inscrit en
    Octobre 2007
    Messages
    84
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 84
    Par d�faut href="javascript:display( this )"
    Bonjour,

    Je souhaite passez l'�l�ment "this" a une fonction javascript.

    J'ai lu que ce n'�tait pas propre de faire
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <a href="#" onClick="display(this)">
    Cependant le code suivant ne marche pas :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <a href="javascript:display(this)">
    Qu'elle est la m�thode la plus propre pour faire ce genre d'appel sachant que je ne souhaite pas que ma page se recharge. Je souhaiterais donc �viter ce genre de code :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <a href="index.php" onClick="display(this)">
    Merci.

  2. #2
    Membre exp�riment� Avatar de nod__
    Profil pro
    �tudiant
    Inscrit en
    Avril 2009
    Messages
    176
    D�tails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 176
    Par d�faut
    tout d�pend de ce que tu veux.

    Si dans ton <a> il n'y a pas de href (ou juste ton #) c'est crade. HTML poss�de un �lement pour les interactions : <button>

    Code html : S�lectionner tout - Visualiser dans une fen�tre � part
    <button onclick="display(this)"></button>

    la suite c'est d'attacher le gestionnaire d'�v�nement � partir de javascript et non pas dans le html en dur.

  3. #3
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    utiliser une balise a pour declencher une fonction g�ne principalement au niveau de r�f�rencement et c'est �� �viter.
    mieux vaut comme le dit nod utiliser un bouton

    En cas de force majeure il faut tout de m�me inhiber le href avec un retunr false
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <a href="#" onclick="display(this);return false;">
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  4. #4
    Membre confirm�
    Inscrit en
    Octobre 2007
    Messages
    84
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 84
    Par d�faut
    En fait il s'agit d'un menu avec onglet qui me permet d'afficher/masquer des panels donc je trouve que l'utilisation de la balise <button> n'est pas vraiment ad�quate.

    Y a-t-il une raison logique � ce que :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <a href="javascript:display(this)">
    renvoie un DOMElement et pas l'�l�ment courant ?

  5. #5
    Membre exp�riment� Avatar de nod__
    Profil pro
    �tudiant
    Inscrit en
    Avril 2009
    Messages
    176
    D�tails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 176
    Par d�faut
    bah si �a renvoie l'�lement courant, le <a> en question…

    Montre le html de ton menu, normalement si c'est des cat�gorie de menu tu devrait utiliser un titre pour ces cat�gories, et mettre le onclick sur le titre en question.

    Sinon t'as des bon scripts qui trainent pour faire bien ce genre de chose.

  6. #6
    Membre confirm�
    Inscrit en
    Octobre 2007
    Messages
    84
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 84
    Par d�faut
    Citation Envoy� par nod__ Voir le message
    bah si �a renvoie l'�lement courant, le <a> en question�
    Petite erreur de ma part ca ne renvoie pas un DOMElement mais un DOMWindow.

    Citation Envoy� par nod__ Voir le message
    Montre le html de ton menu, normalement si c'est des cat�gorie de menu tu devrait utiliser un titre pour ces cat�gories, et mettre le onclick sur le titre en question.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    <ul>
    	<li><a href="javascript:display(this)"><span>Pannel 1</span></a></li>
    	<li class="current"><a href="display(this)"><span>Pannel 2</span></a></li>
    	<li><a href="javascript:display(this)"><span>Pannel 3</span></a></li>
    </ul>
    Citation Envoy� par nod__ Voir le message
    Sinon t'as des bon scripts qui trainent pour faire bien ce genre de chose.
    La plupart des scripts que j'ai trouv� utilisent un href="#" onclick="display()".

    Apr�s le code pour afficher cacher il suffit juste de modifier le style.display.

    Merci pour votre aide.

  7. #7
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    et le href n'est toujours pas inhiber ...

    # peut �tre compris par certains navigateurs comme une renvoi en haut de page (ancre par defaut) ...
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  8. #8
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Petite erreur de ma part ca ne renvoie pas un DOMElement mais un DOMWindow.
    Oui, c'est normal, dans la notation
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <a href="#" onclick="display(this);return false;">
    L'action se fait au niveau du onclick qui est une propri�t� de l'objet JavaScript r�pr�sentant la balise HTML <a>, donc this fait r�f�rence � cet objet.
    Dans la notation (que je d�conseille vivement)
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <a href="javascript:display(this)">
    L'action se fait au niveau de la pseudo-url du href, il n'y a donc pas de lien explicite avec l'objet JavaScript repr�sentant la balise, donc le contexte est global et this r�f�rence l'objet le plus global du document, c'est-�-dire window
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  9. #9
    Membre confirm�
    Inscrit en
    Octobre 2007
    Messages
    84
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 84
    Par d�faut
    <a href="#" onclick="display(this);return false;">
    On en revient donc � la premi�re solution avec en plus l'inhibition (dont je n'ai pas vraiment compris l'utilit�).

    Hormis le probl�me de retour en haut de la page (ancre par d�faut) cette m�thode ajoute � l'url le "#" ce que je ne trouve pas tr�s propre non plus.

    Il existe donc que cette solution .

    Merci.

  10. #10
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Citation Envoy� par redkan Voir le message
    Hormis le probl�me de retour en haut de la page (ancre par d�faut) cette m�thode ajoute � l'url le "#" ce que je ne trouve pas tr�s propre non plus.
    Ben non justement, le return false sert pr�cis�ment � emp�cher le comportement par d�faut du lien...
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  11. #11
    Membre exp�riment� Avatar de nod__
    Profil pro
    �tudiant
    Inscrit en
    Avril 2009
    Messages
    176
    D�tails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 176
    Par d�faut
    non, tu peux mettre n'importe quel �lement. Genre pourquoi tu met pas le onclick sur le li directement ? ou le span � la rigeur ?

Discussions similaires

  1. onmouseover=&quot;Menu_HoverStatic(this)&quot; object expected
    Par cyrano_de_bergerac dans le forum ASP.NET
    R�ponses: 0
    Dernier message: 01/10/2010, 16h01
  2. Mise � jour href en javascript
    Par bashou dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 22/03/2007, 12h35
  3. Lien href et javascript
    Par Flashball dans le forum G�n�ral JavaScript
    R�ponses: 9
    Dernier message: 05/10/2006, 18h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo