2010-07-27 37 views
9

Có cách nào trong JavaScript để truyền bá sự kiện đến các yếu tố bị che khuất bởi một yếu tố khác không? Bởi vì tôi có một phần tử với position: absolute che khuất các yếu tố không phải là thành phần chính của nó, nhưng tôi muốn các sự kiện nhấp chuột, di chuột và mousout truyền qua yếu tố này. Giải pháp có thể là Mozilla Firefox cụ thể, bởi vì tôi sẽ sử dụng nó trong một Tiện ích Firefox.tuyên truyền sự kiện chuột đến các yếu tố bị che khuất

Trả lời

17

Có lẽ css tài sản pointer-events:none; là những gì bạn đang tìm kiếm. Nó được sử dụng trên trang chủ twitter ví dụ, vì vậy bạn có thể nhấp vào văn bản trong "chủ đề xu hướng" cũng khi nó che phủ bằng cách làm mờ đồ họa.

+0

Cảm ơn bạn. Đó là những gì tôi đang tìm kiếm. – panzi

1

Bạn có thể sử dụng getElementsByTagName ("*") để nhận tất cả các phần tử trong trang. Sử dụng chức năng tìm vị trí trên thế giới, bạn có thể lấy vị trí của một phần tử liên quan đến góc trên cùng bên trái của trang. Bây giờ bạn có thể sử dụng offsetWidth, offsetHeight và vị trí chuột [trình duyệt cụ thể, lol] để kiểm tra xem con trỏ có nằm trên phần tử của bạn hay không.

Nếu con trỏ trên phần tử của bạn, hãy kích hoạt sự kiện.

Chức năng trên nên được gắn vào window.onmousedown/onmouseup/onmousemove/bất cứ điều gì

+0

Vâng, tôi hy vọng sẽ có điều gì đó dễ dàng hơn và nhanh hơn. Có thể đặt một ẩn ' 'với một bản đồ hình ảnh liên quan ở phía trước của' '(đó là yếu tố tối nghĩa) sẽ tốt hơn. Hừm. – panzi

+0

cách bạn có thể kích hoạt sự kiện ban đầu trong trình duyệt ??? ví dụ, với jQuery bạn chỉ có thể kích hoạt trình xử lý jQuery ... chứ không phải các sự kiện dom gốc – arty

Các vấn đề liên quan