|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
![]() ![]() Daniel HagnoulÉtudiant perpétuel Inscription : février 2009 Messages : 3 840 ![]() |
Construction et exemples d'utilisation de l'événement spécial clickOutside
Code :
__________________
FAQ jQuery Mon cahier d’exercices sur jQuery & Co plugin dialogModalSi un message vous a aidé ou vous semble pertinent, votez pour lui ! ![]() |
||
|
10
|
|
|
#2 | ||||||
|
Membre expérimenté
![]() Inscription : novembre 2012 Messages : 439 ![]() |
Ah c'est donc comme ça qu'on étend les Events jQuery. J'avais cherché mais n'avait point trouvé, merci pour le code.
Sinon puis-je suggérer d'appeler l'évènement clickout pour rester en cohérence avec l'évènement mouseout ? Aussi concernant l'ordre des arguments, c'est un peu particulier : Code :
Code :
Inversement, on pourrait écrire : Code :
Donc ça se discute... Dans la mesure où le développeur veut identifier un clic en dehors d'un élément déterminé, ça me paraît plus logique de passer cet élément en premier. De plus, le cadre délimitant est facultatif, et pas l'élément exclus. |
||||||
|
|
00
|
|
|
#3 |
![]() ![]() Daniel HagnoulÉtudiant perpétuel Inscription : février 2009 Messages : 3 840 ![]() |
Le choix du nom appartient à l'auteur. J'ai choisi "Cliquez à l'extérieur" qui se traduit par clickOutside.
Je crois qu'un non-débutant en jQuery comprendra mes exemples d'utilisation et mes explications. Plutôt qu'une critique négative stérile, tu devrais écrire la version qui te convient et la posté à la suite et alors nous dire pourquoi tu penses qu'elle est supérieure à la proposition précédente.
__________________
FAQ jQuery Mon cahier d’exercices sur jQuery & Co plugin dialogModalSi un message vous a aidé ou vous semble pertinent, votez pour lui ! ![]() |
|
01
|
|
|
#4 | ||||||||||
|
Membre expérimenté
![]() Inscription : novembre 2012 Messages : 439 ![]() |
Une critique négative stérile ?
Permets-moi de repasser en revue mon post: Citation:
Citation:
Citation:
Citation:
Citation:
Citation:
Citation:
Donc il va falloir m'expliquer en quoi tout ceci est négatif et stérile. Je pense que tu devais être sacrément en pétard pour m'avoir répondu ça, j'espère sincérement qu'après une nuit de sommeil ou une douche froide tu sauras rejuger ça de manière plus posée. Maintenant, face à tes objections : Citation:
http://www.developpez.net/forums/d12...v/#post7016660 Donc le droit au baptême ça va cinq minutes... Si je te suggère de le renommer en clickout, c'est pas pour flatter mon égo mais pour des raisons bien valables : 1) les évènements jQuery sont par convention intégralement en minuscules 2) l'évènement standard le plus proche de celui-ci est mouseout, et pour des soucis de consistance dans le nommage il vaudrait mieux s'en inspirer. C'est pour la même raison qu'on a mousedown en parallèle à l'évènement keydown. Citation:
Citation:
|
||||||||||
|
|
00
|
|
|
#5 |
![]() ![]() Daniel HagnoulÉtudiant perpétuel Inscription : février 2009 Messages : 3 840 ![]() |
Incompréhension mutuelle totale !
Vous me prêtez des sentiments et des intentions que je n'éprouve pas. Pour moi, en programmation, les critiques sont stériles lorsqu'elles ne sont pas appuyées par un code meilleur que celui qui est critiqué. Si vous aviez pris le temps de "jouer" avec mon code (vous reconnaissez que ce type de code est nouveau pour vous) et essayez d'appliquer vos idées, je suis persuadé que vous n'auriez pas émis les mêmes commentaires. En ce qui me concerne, sauf apport d'un meilleur code que le mien, le sujet est clos.
__________________
FAQ jQuery Mon cahier d’exercices sur jQuery & Co plugin dialogModalSi un message vous a aidé ou vous semble pertinent, votez pour lui ! ![]() |
|
00
|
|
|
#6 | |||
|
Membre expérimenté
![]() Inscription : novembre 2012 Messages : 439 ![]() |
Citation:
Pour moi, les idées valent mieux que les actes et avant de foncer tête baissée dans le code, je prends le temps de réfléchir à ce que je veux obtenir au final. C'est pourquoi mes suggestions ne concernaient pas ton code mais le plug-in obtenu au final. Si son utilisation s'avère peu intuitive voire déroutante, alors peu importe qu'il soit codé à merveille, il ne sera pas adopté. Lorsque je t'ai fait part de mes suggestions, je me suis placé en tant qu'utilisateur et non développeur. Puisqu'il s'agit là d'une contribution à destination de tous, je pense que tu devrais être un peu plus à l'écoute (et aimable, ça ne fait pas de mal non plus) Mais bon s'il n'y a que le code que tu daignes lire, voilà ce à quoi je suis arrivé: Code :
Ce n'est certainement pas le "meilleur code", sûrement buggé et optimisable, mais ça aura le mérite de prouver qu'inverser les arguments est possible et que ça mérite de s'y intéresser... |
|||
|
|
00
|
|
|
#7 | |||||||
![]() ![]() Daniel HagnoulÉtudiant perpétuel Inscription : février 2009 Messages : 3 840 ![]() |
Citation:
Ce que vous appeler maintenant "vos suggestions" n'en était pas. L'amabilité, le fond, la forme et le ton n'y étaient pas non plus. Le code proposé ne reprend pas votre idée d'utiliser la forme dynamique du gestionnaire d'événement on() avec inversion des sélecteurs par rapport à l'action. Votre idée : Code :
Code :
Comme lui, vous déclenchez l'événement "click" dans les méthodes setup() et teardown() sur le sélecteur "document". Ce qui fait que votre second exemple de l'utilisation de votre événement spécial est identique au sien : Code :
__________________
FAQ jQuery Mon cahier d’exercices sur jQuery & Co plugin dialogModalSi un message vous a aidé ou vous semble pertinent, votez pour lui ! ![]() |
|||||||
|
00
|
|
|
#8 | ||||||
|
Membre expérimenté
![]() Inscription : novembre 2012 Messages : 439 ![]() |
Citation:
Citation:
J'étais plein de bonnes intentions avant de me prendre un "Plutôt qu'une critique négative stérile" dans la gueule. Et c'est toi qui me fait des leçons d'aimabilité... M'enfin, passons... Oui je me suis inspiré du code de Ben Alman. Il a bien fallu me documenter et je suis tombé dessus alors autant adapter le code d'un spécialiste. D'ailleurs, je remarque qu'il a choisi le même ordre d'arguments que moi pour son implémentation, ce qui me conforte dans l'idée que j'avais raison sur le fond. Citation:
Citation:
Code :
Vu que la discussion tourne clairement vers de la mauvaise foi de ta part, je pense que je ne vais pas insister plus longtemps... Chacun en tirera ses propres conclusions |
||||||
|
|
00
|
|
|
#9 | ||
![]() ![]() Daniel HagnoulÉtudiant perpétuel Inscription : février 2009 Messages : 3 840 ![]() |
Je termine cette discussion en répondant à la question que j'attendais.
Pourquoi as-tu écrit un événement spécial "clickOutside" de cette manière ? Pour détecter simplement un clic en dehors d'un élément du DOM, Ben Alam a écrit une version de "clickOutside" depuis longtemps et elle remplit parfaitement son rôle. Mais il prend seulement en compte un click dans le document, alors que ma version peux détecter un click en dehors d'un ou de plusieurs éléments, mais à l'intérieur d'un ou de plusieurs autres. On peut donc s'en servir comme d'un "super not()". En fait, c'est de cette manière que je l'utilise le plus souvent. Exemple : Code :
__________________
FAQ jQuery Mon cahier d’exercices sur jQuery & Co plugin dialogModalSi un message vous a aidé ou vous semble pertinent, votez pour lui ! ![]() |
||
|
00
|
Copyright © 2000-2013 - www.developpez.com