Kiedy zdarzenie mousedown i mouseup nie równa się kliknięciu

Od jakiegoś czasu korzystam z niektórych przycisków, które mają obniżony efekt, ponieważ są klikane przy użyciu pozycji względnej i góry: 1px w pseudo-klasie: active.

Miałem problemy z nieudanymi kliknięciami i okazało się, że jest to spowodowane zdarzeniami z mousedown i mouseup, które nie wystrzeliwują tego samego elementu. Zrobiłem trochę bójki, aby upewnić się, że najbardziej wewnętrzny element pokrył cały przycisk i odkryłem, że problem pozostał.

Jeśli kliknę w prawym górnym rogu tekstu, łącze przeskakuje w dół (wystrzeliwując zdarzenie mousedown), a następnie tworzy kopię zapasową (wystrzeliwując zdarzenie mouseup), ale kliknięcie nie występuje. Jeśli kliknę ładnie w środku tekstu lub ładnie z dala od tekstu, wszystko jest w porządku.

Jedyną rzeczą, o której mogę tu pomyśleć, jest to, że zdarzenie mousedown wystrzeliwuje na textNode, a kliknięcie myszy uruchamia element kotwiczący, ponieważ textNode nie znajduje się już pod kursorem. Łapanie obiektów zdarzeń i przeglądanie celów za pomocą firebug wskazuje, że tak nie jest, ale naprawdę nie mogę wymyślić innego wyjaśnienia. Czytając trochę, mogę znaleźć wzmiankę o zdarzeniach wystrzeliwujących na textNodes w Safari, ale nic o tym niedopasowaniu.

Poniższy fragment powinien umożliwić powtórzenie problemu. Pamiętaj, że musisz kliknąć na górze tekstu lub piksel lub dwa powyżej, a ten problem występuje tylko w jednym wierszu pikseli:

<style>
a.button-test {
 display: inline-block;
 padding: 20px;
 background: red;
}
.button-test:active {
 position: relative;
 top: 1px;
}
</style>
<a class="button-test" href="#">Clickedy click</a>

Zagubienie się w CSS, nieużywanie bloku inline, zwiększenie wysokości linii zamiast dopełnienia itp. Wydaje się nie mieć tutaj żadnego wpływu. Próbowałem wielu kombinacji. Większość moich testów została przeprowadzona w Firefoksie, aby umożliwić mi powiązanie ze zdarzeniami i rejestrowanie tego, co dzieje się przez firebug, ale również napotykam ten problem w innych przeglądarkach.

Czy ktoś ma jakąś inspirację, którą może zaoferować na tym innym niż utratę aktywnego skoku? Naprawdę chciałbym zachować ten efekt, jeśli mogę.

Wielkie dzięki,

Dom (gra słów nie przeznaczona)

questionAnswers(2)

yourAnswerToTheQuestion