2013-01-01 8 views
7

मूसहेल इवेंट की target संपत्ति डीओएम तत्व प्रदान करती है कि माउस वर्तमान में मूसहेल (या इशारा-सक्षम टचपैड) के रूप में चल रहा है।मूसहेल घटना की लक्षित संपत्ति अन्य (क्लिक, मूसडाउन, टचस्टार्ट) घटनाओं से अलग क्यों है?

जब मैं ऐसा करता हूं (कम से कम सफारी 6 में, मैं बाद में अन्य ब्राउज़रों का परीक्षण करूंगा) मुझे पाठ को नोड target के रूप में प्राप्त होगा।

यह कभी भी अन्य घटनाओं के साथ नहीं होता है जो हमेशा एक गैर पाठ नोड उत्पन्न करते हैं, भले ही मैं सीधे पाठ पर कार्रवाई करता हूं।

कहने की जरूरत नहीं है कि यह कोड अन्यथा की तुलना में अधिक जटिल बनाता है।

क्या इसके लिए कोई कारण है? मैं माता-पिता नोड की जांच करने से बचना चाहता हूं, हालांकि इस स्थिति के बारे में अच्छी बात यह है कि मुझे केवल target नोड के माता-पिता की जांच करने की आवश्यकता होगी।

मैं यह तय नहीं कर सकता कि यह एक सुविधा या बग है या नहीं।

+0

केवल क्रोम/सफारी में भी हो रहा है .. यहाँ एक jsfiddle जो मैं इस http परीक्षण करने के लिए प्रयोग किया जाता है: // jsfiddle .NET/sbrjL/.. दिलचस्प बात यह है कि यदि आप div (या कहीं भी पाठ के साथ कहीं भी) पर एक मूसहेल करते हैं तो यह तत्व को लक्ष्य के रूप में वापस कर देगा .. क्या आप 'event.target' के बजाय 'इस' कीवर्ड का उपयोग कर सकते हैं ? – lostsource

+1

यह "सफारी बग" की वजह से jQuery द्वारा सामान्यीकृत है। – pimvdb

+0

@pimvdb अगर आप उस स्रोत को खोदते हैं जो इंगित करता है कि मैं इसे एक उत्तर के रूप में स्वीकार करूंगा। –

उत्तर

5

यहाँ jQuery कोड है, जहां वे इस व्यवहार को सामान्य की a snippet है, क्योंकि यह एक बग है:

// Target should not be a text node (#504, Safari) 
if (event.target.nodeType === 3) { 
    event.target = event.target.parentNode; 
} 
संबंधित मुद्दे