Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/06/2011, 09h11   #1
Membre du Club
 
Avatar de vanitom
 
Inscription : juillet 2004
Messages : 317
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 317
Points : 49
Points : 49
Par défaut Customiser le sélecteur de jQuery

Bonjour,

Je voudrais customiser le sélecteur de jQuery. J'ai trouvé des informations sur le net. Il "suffit" d'ajouter une fonction dans "$.expr[':']". Malheureusement je voudrais faire plus compliqué. Je vous explique mon cas.

Pour mon application Web, j'ai crée des éléments (table, div, bouton, ...) avec des ID générés automatiquement en PHP et surtout unique (ex: ui-ccde4f1fe04d7323114be01d2f0f1083)
Certaines parties de l'application est mises à jour en AJAX. Mais ces parties ne connaissent pas les ID des autres parties de l'application. Pour cela, j'ai mis en place un système d'alias (ex: "@materials" = "ui-ccde4f1fe04d7323114be01d2f0f1083").

A l'heure actuel, pour récupérer la liste mon matériel, je dois faire et c'est chiant à implémenter.
Code :
$($.alias("@materials"))
Voici ce que je voudrais écrire pour avec le même résultat : Auriez vous une idée pour étendre le sélecteur de jQuery pour que cela fonctionne ?
J'ai essayé de bidouiller pour ça fonctionne mais je n'y suis pas arrivé. D'où ma question ici
vanitom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 10h07   #2
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 019
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 019
Points : 45 114
Points : 45 114
pourquoi ne pas juste passer par un array de correspondances ??

Code :
1
2
3
var alias=new Array()
alias["@materials"] = "ui-ccde4f1fe04d7323114be01d2f0f1083";
.../...
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 12h35   #3
Membre du Club
 
Avatar de vanitom
 
Inscription : juillet 2004
Messages : 317
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 317
Points : 49
Points : 49
En fait ce que je fais dans ma fonction "$.alias".

Mais je voulais utiliser un sélecteur spécifique car je génère du script js, dont jQuery, avec CakePHP. Dans le lot de ces fonctions, il y en a une qui correspond au "$()" de jQuery. A partir de là, on peut générer très simplement générer du code jQuery.

Et là avec mes histoires d'alias, ça me complique la vie. D'où ma question.

Si je ne trouve pas de solution pour mes histoire d'alias, j'utilisera l'équivalent de ta méthode. Mais j'avoue que j'aimerais bien trouver la solution.
vanitom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 13h22   #4
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 019
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 019
Points : 45 114
Points : 45 114
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<script type="text/javascript">
$.extend($.expr[':'],{
    materials : function(a) {
    				  return $(a).attr('id')==='ui-ccde4f1fe04d7323114be01d2f0f1083';
    }
});
$(function(){
alert($(":materials").html())
})
</script>
</head>
<body>
<div id="ui-ccde4f1fe04d7323114be01d2f0f1083">bonjour</div>
mais je ne vois pas trop l'intéret de la chose ...
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 00h32   #5
Rédacteur
 
Avatar de danielhagnoul
 
Homme Daniel Hagnoul
Étudiant perpétuel
Inscription : février 2009
Messages : 3 221
Détails du profil
Informations personnelles :
Nom : Homme Daniel Hagnoul
Âge : 61
Localisation : Belgique

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

Informations forums :
Inscription : février 2009
Messages : 3 221
Points : 6 767
Points : 6 767
Bonsoir

Citation:
Mais ces parties ne connaissent pas les ID des autres parties de l'application
Lorsque vous généré l'ID unique d'un élément du DOM, vous pouvez stockez sa valeur dans un attribut data-XYZ (par exemple : data-id-to-modify="ui-ccde4f1fe04d7323114be01d2f0f1083") d'un autre l'élément du DOM.

Lorsque la partie mise à jour en AJAX a besoin de l'ID a modifié, elle récupère la valeur (dans mon exemple : $(selection).data("idToModify") ).

L'usage des attributs data-XYZ nécessite jQuery 1.4.3, et en les écrivant comme ci-dessus la version 1.6

Voir : http://api.jquery.com/data/
__________________

FAQ jQuery

Mon cahier d’exercices sur jQuery & Co

Si un message vous a aidé ou vous semble pertinent, votez pour lui !
danielhagnoul est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h08.


 
 
 
 
Partenaires

Hébergement Web