2011-10-18 62 views

回答

3

如果重疊元素是動態的,我不相信這是可能的,因爲所涉及的兩個重疊的元素是「兄弟姐妹」來完成這項使用常規事件冒泡。

我有同樣的問題,我能用更多的hitTest scenerio來解決它,我測試用戶的鼠標位置是否在同一個區域內。

function _isMouseOverMe(obj){ 
    var t = obj.offset().top; 
    var o = obj.offset().left; 
    var w = obj.width(); 
    var h = obj.height(); 
    if (e.pageX >= o+1 && e.pageX <= o+w){ 
     if (e.pageY >= t+1 && e.pageY <= t+h){ 
      return true; 
     } 
    } 
    return false 
} 
+0

謝謝,其實我做到了以類似的方式 – AlaskaKid

0

您需要使用3個事件處理程序,一個用於div1,一個爲div2,和一個爲contentArea。 contentArea處理程序應該停止傳播,以便不調用div2處理程序。該DIV2處理程序應該調用DIV1處理程序:

function div1Click (e) 
{ 
    // do something 
} 
function div2Click (e) 
{ 
    div1Click.call(div1, e); 
} 
function contentAreaClick (e) 
{ 
    e = e || window.event; 
    if (e.stopPropagation) e.stopPropagation(); 
    e.cancelBubble = true; 
    // do something 
} 
div1.onclick = div1Click; 
div2.onclick = div2Click; 
contentArea.onclick = contentAreaClick; 
+0

的問題是,在我的情況,我有很多這樣的div,他們是動態的(可拖動)和DIV1具有相同的結構,所以無法處理事件這樣 – AlaskaKid