Vì vậy, tôi đã làm điều này và nó hoạt động trong Firefox 3.5 trên Windows XP. Nó hiển thị một hộp có một số văn bản, lớp phủ hình ảnh và một div trong suốt ở trên chặn tất cả các nhấp chuột.
<div id="menuOption" style="border:1px solid black;position:relative;width:100px;height:40px;">
sometext goes here.
<!-- Place image inside of you menu bar link -->
<img id="imgOverlay" src="w3.png" style="z-index:4;position:absolute;top:0px;left:0px;width:100px;height:40px;" \>
<!-- Your link here -->
<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>
Những gì tôi đã làm: Tôi đã tạo một div và định kích thước nó thành kích thước tùy chọn menu có thể có, 100x40px (một giá trị tùy ý, nhưng nó giúp minh họa cho mẫu).
Div có lớp phủ hình ảnh và lớp phủ liên kết. Liên kết chứa một div có kích thước giống như div 'menuOption'. Bằng cách này, một lần nhấp của người dùng được ghi lại trên toàn bộ hộp.
Bạn sẽ cần cung cấp hình ảnh của chính mình khi thử nghiệm. :)
Lưu ý: Nếu bạn mong đợi nút menu của mình phản hồi lại tương tác của người dùng (ví dụ: thay đổi màu để mô phỏng một nút), thì bạn sẽ cần thêm mã được đính kèm với javascript mà bạn sẽ gọi trên thẻ, mã bổ sung này có thể giải quyết vấn đề ' menuOption 'thông qua DOM và thay đổi màu của nó.
Ngoài ra, không có cách nào khác mà tôi biết về việc bạn có thể thực hiện một sự kiện nhấp chuột và đăng ký sự kiện đó trên một phần tử bên dưới phần tử trang hiển thị. Tôi cũng đã thử điều này vào mùa hè này và không tìm thấy giải pháp nào khác ngoài giải pháp này.
Hi vọng điêu nay co ich.
Tái bút: Việc ghi lại các sự kiện tại quirksmode đã đi một chặng đường dài để giúp tôi hiểu cách các sự kiện hoạt động trong trình duyệt.