2011-10-18 20 views

cevap

3

: DIV2 işleyici div1 işleyicisi çağırmalıdır.

Aynı sorun vardı ve kullanıcının fare konumu aynı bölgede olup olmadığını test ettiğim hitTest senaryoları ile çözebiliyordum.

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

sayesinde işlem yapamadığı, benim durumumda olduğu, aslında yaptım benzer şekilde – AlaskaKid

0

Biri div1 için bir tane olmak üzere 3 olay işleyicisi kullanmak isteyebilirsiniz. div2 için ve bir de contentArea için. ContentArea işleyici, yayılmayı durdurmalı ve böylece div2 işleyicisi çağrılmamalıdır. çakışan öğelerin dinamik ise, bunu söz konusu iki çakışan öğelerin "kardeşler" olduğundan köpüren bu kullanarak düzenli olayı gerçekleştirmek mümkündür inanmıyorum

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

Sorun tür birçok renklendirilmiş ve dinamik (sürüklenebilir) ve div1 aynı yapıya sahiptir, bu yüzden bu yolu olayları – AlaskaKid

İlgili konular