Zrobiłem to i działa w Firefoksie 3.5 na Windows XP. Pokazuje ramkę z tekstem, nakładką obrazu i przezroczystym elementem div powyżej, który przechwytuje wszystkie kliknięcia.
<div id="menuOption" style="border:1px solid black;position:relative;width:100px;height:40px;">
sometext goes here.
<img id="imgOverlay" src="w3.png" style="z-index:4;position:absolute;top:0px;left:0px;width:100px;height:40px;" \>
<a href="javascript:alert('Hello!')" >
<div id="mylinkAction" style="z-index:5;position:absolute;top:0px;left:0px;width:100px;height:40px;">
</div>
</a>
</div>
Co zrobiłem: stworzyłem div i zwymiarowałem go tak, aby odpowiadał rozmiarowi opcji menu, 100x40px (dowolna wartość, ale pomaga w zilustrowaniu próbki).
Element DIV ma nakładkę obrazu i nakładkę łącza. Link zawiera element div o takiej samej wielkości, jak element div „menuOption”. W ten sposób kliknięcie użytkownika jest rejestrowane w całym polu.
Podczas testowania musisz podać własny obraz. :)
Uwaga: jeśli spodziewasz się, że przycisk menu zareaguje na interakcję użytkownika (na przykład zmiana koloru, aby zasymulować przycisk), będziesz potrzebować dodatkowego kodu dołączonego do javascript, który wywołasz na tagu, ten dodatkowy kod może adresować „ menuOption 'poprzez DOM i zmień jego kolor.
Nie ma też innego sposobu, w jaki wiem, że możesz wziąć zdarzenie kliknięcia i zarejestrować je w elemencie pod widocznym elementem strony. Próbowałem tego również tego lata i nie znalazłem innego rozwiązania niż to.
Mam nadzieję że to pomoże.
PS: Opis wydarzeń w quirksmode bardzo pomógł mi zrozumieć, jak zdarzenia zachowują się w przeglądarkach.