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

jQuery Discussion :

Comment rendre un code portable ?


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 9
    Par défaut Comment rendre un code portable ?
    Bonjour à tous,

    Je développe principalement en PHP et je fais un peu de javascript et d'ajax.
    J'utilise JQuery pour la première fois avec le Plugin Interface, et plus précisément ce script la :

    http://interface.eyecon.ro/demos/windows.html

    Dans le HTML j'ai donc un lien banal de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" id="windowOpen">Ouvrir la fenêtre</a>
    Lors d'un clique il exécute le script suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <script type="text/javascript">
    $(document).ready(
    	function()
    	{
    	  $('#windowOpen').bind(
    		'click',
    		function() {
    			if($('#window').css('display') == 'none') {
    				$(this).TransferTo(
    					{
    						to:'window',
    						className:'transferer2', 
    						duration: 400,
    						complete: function()
    						{
    							$('#window').show();
    						}
    					}
    				);
    			}
    			this.blur();
    			return false;
    		}
    	);
      }
    );
    </script>
    Ce script rend mon bloc #window visible.

    Mon problème :
    Lors du clique sur le lien, le script rend le bloc #window visible. Si je crée un deuxième bloc #window2 par exemple, je devrais recopier tout le code et changer le $('#window')

    Comment puis-je faire (avec un this. ?) pour que lors du clique sur le lien, le script sache quel bloc il doit rendre visible ? (pour avoir plusieurs liens dans une même page, et donc plusieurs bloc invisible.)

    J'ai du mal à trouver la syntaxe exacte, merci beaucoup de m'aider !

    PS: je m'excuse par avance, je n'ai pas réussi à déplacer le sujet dans le sous forum pour JQuery.

  2. #2
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    salut,

    il faut d'une manière ou d'une autre avoir une relation entre l'élément cliquable
    et l'élément qui représente la fenêtre.

    Tu peux choisir par exemple de placer le tag de la fenêtre toujours après le lien,
    dans ce cas un $(this).next('.win') permettrait de faire référence au premier
    tag frère de "a" qui porte une class='win'

    Autre approche possible, utiliser l'attribut rel de la balise a, par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a rel='window2'>...</a>
    Ainsi tu obtient l'id de la fenêtre à afficher par un $(this).attr('rel')

    Encore une autre approche possible:

    Placer les div fenêtres en bas de page dans le même ordre que les liens
    qui y font référence et ouvrir la nème div qui corresponds
    à l'index du liens sur lequel tu clique (par index j'entends sa position dans
    une sélection JQuery de tous les liens ouvrant des fenêtres)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 9
    Par défaut
    salut, et merci pour la réponse

    je pensais effectivement ajouter un attribut à ma balise <a> avec le nom du <div>

    mais je découvre tout ça, je vais testé voir si j'arrive à récupérer l'attribut dans le script via $(this).attr('rel')

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment rendre ce code plus propre ?
    Par n0-sheep dans le forum C++
    Réponses: 2
    Dernier message: 15/12/2013, 17h31
  2. [PowerShell] Comment rendre vos codes plus rapides en execution
    Par I'm_HERE dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 05/12/2013, 13h31
  3. Comment rendre un code MATLAB plus rapide?
    Par ERICKO dans le forum MATLAB
    Réponses: 9
    Dernier message: 04/07/2012, 17h47
  4. Comment rendre ce code plus "générique" ?
    Par Yann39 dans le forum jQuery
    Réponses: 14
    Dernier message: 10/11/2010, 10h42

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