Bonjour,

Loin d'être totalement totalement un bleu (peut être 10 000 à 50 00 lignes de code, on ne sait plus petits bout par petits bouts...) donc pas vraiment un expert et je sèche (une journée de test et de recherche) sur le problème suivant :

Un lien interne cible un élément d'un document, on doit exécuter une fonction javascript quand le lien est activé. C'est tout.
Quel événement peut être récupéré sur l'objet de façon à le traiter avec JQuery par une instruction de la forme

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
$("#monelement"). ? (function () {....}) /* ou */
$("#monelement"). on(" ?", (function () {....})
Je n'ai jamais eu à traiter ce sujet. C'est probablement enfantin ou nécessite un astuce, ceci étant la question posée il y a 48h sur le site JQ n'a donné aucun résultat significatif. (les événements suggérés : "hashChange or popState or pathChange" ne sont pas dans le contexte).

Je viens de faire à nouveau une revue avant de lancer le sujet, il y aurait peut-être à gratter, en l'absence d'un événement "targeted" qui serait si pratique vers "transitionend" en générant une transition fictive ou non, qui, utilisant le moteur CSS générerait en cascade un événement récupérable (set event trigger on) par JS-JQ. Mais que c'est tordu.


Merci de votre aide.

Cordialement

Trebly



Commentaires :

1- en css si l'élément est id="monelement"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<style>
#monelement:target { properties } changera les propriétés de l’élément sans aucune difficulté, effets, transitions, etc.
</style>
fonctionne sur tout selecteur

2- Le navigateur riche de l'événement va positionner l'élément en haut de fenêtre (pose problème si le haut est occupé par un élément fixe de taille variable i.e. menu)

3- En JS je n'ai pas trouvé d'événement. Ainsi avec JQuery $("#monelement"). ? (function () {....} le "?" ( ou bien .on(" ?", function... ) reste un mystère.

Rien ne semble permettre d'exécuter une fonction JS sur l'élément cible d'un lien et je n'ai pas réussi à trouver le moindre exemple même voisin.

Evidemment $("document").[scroll || focus]( function() { $("#monelement:target").each( function .... ) } "excitera" le système de manière quasi permanente (innacceptable) en récupérant des conséquences générant un événement sur le reste du document, puis avec un filtre etc.

4- Le sujet global est la navigation dans un document à l'aide d'un sommaire, mais chaque fois que l'on cible un élément on doit exécuter plusieurs opérations de recadrage, positionnements relatifs d'objets, mémorisation etc...