2012-01-06 21 views
2

我需要在頁面上處理鼠標事件,其中有多個不規則形狀的對象(例如房屋)堆疊在一起。如果我使用正常的事件委託jQuery .on()方法,即使用戶單擊對象(或圖像)的透明部分,報告的事件源始終是最頂端的對象。在事件代表處處理不規則形狀對象上的鼠標事件

示例:即使單擊X位置,包含紅色三角形的標記始終是事件源。 Example

我可以檢測到鼠標點擊不在三角形內。我需要的是將事件「轉發」到下面綠色三角形的方式。

編輯:我目前的做法是趕在一個大的div包裹的一切活動,然後使用jQuery選擇和比較的座標,以找出哪些對象是下鼠標,然後檢查是否鼠標在透明部分或不。它工作正常,但似乎很慢,並消耗很多的記憶,尤其是與鼠標移動事件連續發射。

編輯2: 該圖像是從Building a game engine with jQuery萃取,我的方法是幾乎相同。現在,這是一個問題: enter image description here

+0

我不認爲有這樣做的一致的即插即用方法。 – Purag 2012-01-06 06:52:13

+0

如何使用圖像映射和區域標籤? – dfsq 2012-01-06 07:32:27

+0

瞭解paper.js,非常簡單且功能強大(但它僅適用於新的瀏覽器:Chrome,Firefox 3.5及更高版本,IE9) – 2012-01-06 07:37:53

回答

0

您是否使用純HTML元素繪製複雜的圖形?不確定您的具體需求,但使用SVG或Canvas更有意義,因爲捕獲形狀上的單擊事件變得更容易。