J'ai une page qui a une zone rectangulaire avec du texte et des icônes et le tout est cliquable. La balise d'ancrage est définie pour afficher: block. Une des icônes a un gestionnaire onclick. Si une personne clique sur une icône, je veux simplement que le gestionnaire onclick de l'icône soit exécuté et non que la balise d'ancrage contenant soit activée. Firefox se comporte comme je veux, IE ne fonctionne pas.Pourquoi est-ce que je ne peux pas piéger un clic de souris dans IE?
J'ai donc essayé de piéger l'événement dans le gestionnaire onclick:
function my_onclick_handler(evt){
if (!evt) evt = window.event;
// ... handle the click
if (evt.stopPropagation) evt.stopPropagation();
evt.cancelBubble = true;
}
qui ne fonctionnait pas si je pensais que peut-être il est en fait le onmouseup ou onmousedown événements qui déclenchent la balise d'ancrage alors j'ai ajouté un clickSwallow méthode à onmouseup et onmousedown méthodes:
function clickSwallow(evt){
if (!evt) evt = window.event;
if (evt.stopPropagation) evt.stopPropagation();
evt.cancelBubble = true;
}
Cela ne fonctionne pas non plus. Des idées comment garder l'ancre enfermant de réagir au clic dans ce cas?
Retour faux travaillé. Merci! Mais qu'entendez-vous par rapport à la durée? Mettez un span autour de l'img et ajoutez l'onclick à cela? –
Je voulais dire utiliser un élément span à la place d'un élément d'ancrage, si vous ne voulez pas que les utilisateurs suivent le href de toute façon. – Triptych
Oh, mais je veux que le href fonctionne généralement. Cette icône est juste pour afficher plus d'informations sur la signification de cette zone rectangulaire afin que l'utilisateur comprenne mieux pourquoi il pourrait vouloir cliquer dessus. –