2011-10-18 15 views
5

imagemousedown। भाई बहन पर प्रचार event.targets

मैं 'स्थिति पूर्ण' जो दोनों mousedown घटना को संभालने के साथ 2 भाई-नोड्स की है। जब मैं 'div 2' (चित्र पर) के पारदर्शी क्षेत्र पर क्लिक कर रहा हूं, तो मैं 'div 1' के हैंडलर को कैसे ट्रिगर कर सकता हूं।

उत्तर

3

अतिव्यापी तत्वों गतिशील हैं, तो मुझे नहीं लगता कि यह इस का उपयोग करते हुए नियमित रूप से घटना बुदबुदाती पूरा करने के लिए के बाद से सवाल में दो अतिव्यापी तत्व हैं "भाई बहन" संभव है।

मुझे एक ही समस्या थी और मैं इसे हिटटेस्ट स्केनेरियो के साथ हल करने में सक्षम था, जहां मैं परीक्षण करता हूं कि उपयोगकर्ता की माउस स्थिति उसी क्षेत्र में है या नहीं।

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 के लिए, और सामग्री के लिए एक एरिया। सामग्री एरिया हैंडलर को प्रचार रोकना चाहिए ताकि 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

समस्या मेरे मामले में, है, मैं कई जैसे divs है और वे गतिशील (खींचने योग्य) कर रहे हैं और div1 एक ही संरचना है, इसलिए मैं इस तरह से – AlaskaKid

संबंधित मुद्दे