Bonjour,
J'ai 2 evènements sur un lien : onMouseDown et onClick.
Ma question est : dans le code que je vais exécuté dans onMouseDown, est ce que je peux faire quelque chose du style....monLien.onClick = false; ???
Merci.
Version imprimable
Bonjour,
J'ai 2 evènements sur un lien : onMouseDown et onClick.
Ma question est : dans le code que je vais exécuté dans onMouseDown, est ce que je peux faire quelque chose du style....monLien.onClick = false; ???
Merci.
ou e est ton evenement dont tu souhaites annuler la propagation....Code:
1
2
3 e.cancelBubble = true; if (e.stopPropagation) e.stopPropagation();
:ave: :ave: :ave: :hola: :hola: :hola:
Faut juste savoir ou chercher (je connais pas par coeur). Va falloir que je le mette dans la FAQ... piouf, y'aurait tellement de chose à faire, et mon travail qui avance pas :/Citation:
Envoyé par SpaceFrog
comment je suis déçu !Citation:
Envoyé par denisC
:lol:
Merci pour la réponse.
Encore une question suite à ta réponse... :D
Dans mon code éxécuté par onMouseDown, comment je fais pour récupérer/référencer mon évènement onclick ? (je sais pas si ca change quelque chose mais je voudrai que ca fonctionne sur firefox)
Encore merci.
pas compris
Je reformule.
Mon évènement onMouseDown va s'exécuter en 1er.Code:<td><a href="#" onmousedown="return deleteItemWithLink(this);" onclick="document.forms['form']['form:_idcl'].value='form:tableau:0:_id22'; document.forms['form'].submit(); return false;" class="lienBouton"><img src="/WebHandicap/images/supprime.gif" alt="Supprimer la ligne" class="lienBouton" /></a></td>
Dans ma fonction deleteItemWithLink, je voudrais faire des traitements mais empécher ce qui se passe dans le onclick.
A priori, je dois utiliser ca :
Mais pour faire ce que je voudrai, faudrait que dans ma fonction deleteItemWithLink(qui est appelé de onMousedown), je puisse faire quelque chose du style :Citation:
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
Code:
1
2
3
4 var event = monObj.getEvent; //ou event serait l'évènement onclick event .cancelBubble = true; if (event .stopPropagation) event .stopPropagation();
DenisC => faut deleguer ... mais chui pas modo :wink:
attends: tu as un mousedown et un click et tu veux que le 2e soit inactif?
mais pourquoi donc donc? 8O
à part ça, faites gaffe aux cancelBubble / stopPropagation; vu d'ici, vous courez à la cata si vous pensez que ça va désactiver le 2e événement :roll:
ah voui c est vrai !
ca evite la propagation de l event en question aux elements enfants ou parents c est ca ?
En gros, voilà comment ca marche.Citation:
Envoyé par javatwister
Si je clique sur mon lien, j'affiche une popup de confirmation.
Si réponse = oui, j'éxécute, sinon je ne fais rien.
Le problème : La suppression s'effectue même si je ne réponds pas à la popup à cause de l'évènement onclick (et le code associé) qui est généré automatiquement.
Vu que c'est du code généré, je peux donc pas intervenir dessus. Le seul endroit où je peux agir, c'est dans le code sur onmousedown. J'ai besoin de contrôler quand même le onclick sans s'y avoir accès 8O :?
Finalement, ce que je voudrais faire, c'est bien ce que tu as compris : c'est désactivé le 2e évènement à partir du 1er
fais un confirm sur le onclick avec une redirection js vers ta page qui fais la suppression.
ou alors avec xmlhttprequest ;)
tu peux pas faire de confirm perso comme ca.
J'ai essayé deja, c est pas possible.
En plus ton onclick doit pas etre sur le lien, ca doit venir de la popup ...
je peux pas faire ca, comme je l'ai dis avant, c'est du code qui est généré. Je peux rien faire dedans, c'est écris automatiquement. Je peux pas y toucher....Citation:
Envoyé par siddh
Je suis ouvert à toutes propositions. Je pourrai utiliser ca comment ? je vais chercher de la doc.Citation:
Envoyé par siddh
Le onclick est bien sur le lien. Voilà le code source de ma page :Citation:
Envoyé par siddh
Code:<td><a href="#" onmousedown="return deleteItemWithLink(this);" onclick="document.forms['form']['form:_idcl'].value='form:tableau:0:_id22'; document.forms['form'].submit(); return false;" class="lienBouton"><img src="/WebHandicap/images/supprime.gif" alt="Supprimer la ligne" class="lienBouton" /></a></td>
et ta methode deleteItemWithLink ?
elle fais quoi ?
http://javatwist.imingo.net/test.htm
(à explorer, bien sûr)
aie aie caramba !
ben vi un confirm c est bien
voilà le code que j'avais :
J'ai essayé ce que tu m'as donné.Code:
1
2
3
4
5
6 function deleteItemWithLink(linkObj) { var toDelete = confirm('Voulez-vous supprimer ce frais ?'); if (toDelete == true) { linkObj.onclick(); } }
Merci javatwister ! ca a bien stoppé l'action onclick.
Malheureusement, ca m'amène à un autre problème...En faisant ca "linkObj.onclick=function(){return false};"
ca écrase le code pour onclick, or ce qui est généré j'en ai quand même besoin parce que ca fait des initialisations (entre autre)
Encore une question, est ce que c'est possible de conserver le code avant de l'écraser ? quelque chose du genre :
Code:
1
2
3
4
5
6
7
8
9
10 function save(){}; function deleteItemWithLink(linkObj) { function save() = linkObj.onclick; linkObj.onclick=function(){return false}; var toDelete = confirm('Voulez-vous supprimer ce frais ?'); if (toDelete == true) { save(); }
ben écoute, dis une fois pour toute ce que fait ton onclick! jusqu'ici, on pensait qu'il servait à soumettre un formulaire, point.
pourquoi ne lances-tu pas sur mousedown les fonctions (d'initialisation, etc.) prévues sur click?
pas la peine de "sauvegarder";
d'abord javatwister merci pour ton aide.
Voilà le code que j'ai dans mon onclick (qui est généré automatiquement...)
En fait, j'ai un tableau qui présente des éléments. Et sur chaque ligne, il y a ce code ci-dessus, qui permet de supprimer l'élément du tableau (et en BDD) (Ce code est "customisé" suivant la ligne)Code:<td><a href="#" onmousedown="return deleteItemWithLink(this);" onclick="document.forms['form']['form:_idcl'].value='form:tableau:0:_id22'; document.forms['form'].submit(); return false;"></a></td>
Ensuite, j'image que ca :
ca permet d'identifier la ligne cliquée.Code:document.forms['form']['form:_idcl'].value='form:tableau:0:_id22';
Je peux pas faire ca, vu que c'est du généré, je peux pas deviné à l'avance ce qu'il va générer car ce qu'il génère c'est fonction des éléments dans le tableau et du nombre d'éléments...Citation:
pourquoi ne lances-tu pas sur mousedown les fonctions (d'initialisation, etc.) prévues sur click?