je suis confronté à cette question:Deux événements sur un onclick
<p class="pushButton">
<a href="javascript:return;"
onclick="SetOkCodeButton('=SC_ORDER', 'BBPForm', '', '','');
return false;" name="Order" class="pushButton"
title="Orders your shopping cart. This completes the operation "
onmouseover="status=' ';return true;" onmouseout="status=' ';">
Order
</a>
</p>
<p class="pushButton">
<a href="javascript:return;"
onclick="SetOkCodeButton('=SC_REFRESH', 'BBPForm', '', '','');
return false;" name="Refresh" class="pushButton"
title="Updates all details according to your changes. "
onmouseover="status=' ';return true;" onmouseout="status=' ';">
Refresh
</a>
</p>
Je dois changer la fonctionnalité du bouton ORDER
. Il doit déclencher la fonctionnalité REFRESH
(générant l'événement SC_REFRESH
) juste avant que l'événement SC_ORDER
ne soit généré.
Cela signifie que j'ai besoin de déclencher deux événements avec un seul clic sur le bouton ORDER
- d'abord REFRESH
puis ORDER
. Avec 2 secondes de pause entre les deux événements. La fonctionnalité de REFRESH
ne changera pas.
return false; L'instruction annule l'action par défaut du lien (navigation vers l'emplacement de l'ancre). Pour cette raison, le href = "javascript: return;" les attributs pourraient simplement être remplacés par href = "#". –
Si vous mettez autant de code dans l'attribut onclick, vous feriez mieux de le décomposer en une fonction dans un bloc de script pour plus de lisibilité et de facilité de maintenance. –
onclick ne nécessite pas de retour false, hrefs do (et javascript: void foo() est une façon plus sûre et plus claire de le faire - et je ne pourrais pas être d'accord que c'est un code horrible - voir points A, B, D et E :) – annakata