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 :

Creation d'un plugin 'editor' pour un fomulaire de texte


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de CactO_o's
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 98
    Par défaut Creation d'un plugin 'editor' pour un fomulaire de texte
    Bonjour à tous, je suis en train de créer un formulaire qui me permettra de rendre la gestion du contenu plus facile aux utilisateurs (création de news, etc..)

    Pour une meilleure compréhension, voici mon code JS :

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    $.fn.editor = function(url, options)
    {
    	// Options
     
    	options = arrayMerge(
    	{
    		"url" 		: url,
    	},options);
     
     
     
    	// init
     
    	this.each(function()
    	{
    		init($(this));
    	}); 
     
    	function init(me)
    	{
    		myId		= me.attr('id');
    		myWidth 	= me.width();
    		myHeight	= me.height();
     
    		html_link	= '<div class="K_editor_link"><a id="K_editor_linkBold_'+myId+'">Gras</a>|<a id="K_editor_linkItalic_'+myId+'">Italique</a>|<a id="K_editor_linkUnderline_'+myId+'">Souligne</a></div>';
    		html_area	= '<div name="'+me.text()+'" class="K_editor_area"><textarea id="K_editor_textarea_'+myId+'" name="'+myId+'">'+me.text()+'</textarea></div>';
     
    		html		= html_link+html_area;		
     
    		me.append(html);
     
    		myLink		= me.children('.K_editor_link');
    		myTextarea	= me.children('.K_editor_area').children('textarea');		
     
     
     
    		$('#K_editor_linkBold_'+myId).click(function()
    		{
    			insertTag('<bold>','</bold>','K_editor_textarea_'+myId);
    		});
    		$('#K_editor_linkItalic_'+myId).click(function()
    		{
    			insertTag('<italic>','</italic>','K_editor_textarea_'+myId);
    		});
    		$('#K_editor_linkUnderline_'+myId).click(function()
    		{
    			insertTag('<underline>','</underline>','K_editor_textarea_'+myId);
    		});
    	}
     
     
     
     
     
     
     
     
     
    	// function
     
     
     
    	function insertTag(startTag, endTag, textareaId, tagType) 
    	{
    		var field  = document.getElementById(textareaId); 
     
    		/* Ajoutes les balises autour du texte sélectionné dans field */
    	}
     
     
     
    	function arrayMerge(a, b) 
    	{
    		/* fonction arrayMerge */
    	};
     
    };
    Maintenant le problème :

    A partir du moment ou il y a plusieurs formulaires de ce type, et qu'il y a un click sur un 'link' les balises s'ajoutent sur le DERNIER textarea et pas sur le textarea du link...*

    Je n'arrive à comprendre pourquoi les balises ne s'ajoute pas au bon textarea...

    J'ai même essayé en mettant l'exemple ci dessous (et en créant les bonnes class) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    myLink.children('.K_editor_linkUnderline'.click(function()
    		{
    			insertTag('<underline>','</underline>','K_editor_textarea_'+myId);
    		});
    Mais toujours rien...



    Si quelqu'un pouvait m'aider ! Je lui en serais très reconnaissant ! !!!

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir.

    Je manque de temps pour étudier et tester un plugin, mais après un rapide coup d'oeil il me semble que la structure du plugin n'est pas optimale. Je vous conseille la lecture de A Plugin Development Pattern et de http://docs.jquery.com/Plugins/Authoring

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre confirmé Avatar de CactO_o's
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 98
    Par défaut
    Merci pour la réponse ! Je vais aller voir ça dès maintenant.


    EDIT :

    J'ai remarqué une différence entre mon code et celui montré dans les liens :

    Mon appel init ce fait comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // init
     
    	this.each(function()
    	{
    		init($(this));
    	});
     
    	function init(me)
    	{
    /*		Utilisation de 'me' pour les event, etc..   */
    	}

    Alors que dans les liens la structure est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #
    return this.each(function() {
    	$this = $(this);
     
    /*	Utilisation de '$this' pour les event, etc..   */
    });
    L'utilisation d'un return est-il obligatoire ? Que change t'il ?

  4. #4
    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,

    Tu ne déclare pas tes variables dans la fonction init. De ce fait elles
    sont déclarées en global, ce sont les mêmes pour chaque appel à init.

    utilise var pour les déclarer en local.

  5. #5
    Membre confirmé Avatar de CactO_o's
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 98
    Par défaut
    Huum... Je ne savais pas que l'utilisation de 'var' déclarait la variable en interne..

    Très bon à savoir ! Merci bien


    Par contre si quelqu'un pouvait répondre à l'EDIT que j'ai fais dans mon dernier post [Sur leur utilisation d'un "return" que je ne fais pas]

    EDIT : j'ai essayé avec les var et plus de problème !!

    Merci à toi (et aux autres !)

    [Sujet résolu]

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

Discussions similaires

  1. creation d'un plugin pour firefox
    Par Benji2 dans le forum Autres langages pour le Web
    Réponses: 6
    Dernier message: 18/11/2011, 17h57
  2. Création d'un plugin
    Par Invité dans le forum WordPress
    Réponses: 0
    Dernier message: 08/06/2010, 16h13
  3. Réponses: 1
    Dernier message: 26/04/2007, 14h10
  4. [plugin][VE] visual editor pour eclipse
    Par fptv7514 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 26/08/2005, 14h00
  5. [Plugin][VE]Visual editor pour Eclipse
    Par vijeo dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 08/06/2005, 09h04

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