2011-09-12 15 views
6

मेरे पास कुछ HTML है।इटालिक टैग के साथ एचटीएमएल एंकर टैग

<a href="#"> 
    <i class="some-bg" /> 
    Some Text 
</a> 

और कुछ जावास्क्रिप्ट।

$("a").bind("touchstart", function (e) { 
    e.preventDefault(); 

    console.log("Tag: " + e.target); 
    console.log("Tag Name: " + e.target.tagName); 
}); 

प्रतिक्रिया है।

Tag: [object HTMLElement] 
Tag Name: I 

क्यों? यह लंगर नहीं होना चाहिए?

UPDATED

$("a, a *").bind(function() { 
    e.stopPropagation(); 

    // other stuff 
}); 

इस चाल करना होगा?

+0

क्यों नहीं '' कोशिश करें? – jrummell

+3

याद रखें कि 'i', 'b' और' u' का अर्थ आपके अर्थशास्त्र के बारे में बहुत अधिक नहीं है। [बेहतर तरीके हैं] (http://www.impressivewebs.com/bold-italic-html5/) ... –

उत्तर

4

क्यों?

क्योंकि आप को छुआ <i> (और फिर घटना <a> अप करने के लिए bubbled)।

यह एंकर नहीं होना चाहिए?

नहीं। currentTarget का उपयोग करें यदि आप उस तत्व को चाहते हैं जिस पर ईवेंट बाध्य है, तो वह वास्तव में घटना को ट्रिगर करता है।

+0

ऐसा होगा जैसे मैं "i" स्पर्श करता हूं और घटना दो बार निकाल दी जाती है? – Neutralizer

+0

हे, मुझे बस समस्या का एहसास हुआ। समस्या यह है क्योंकि "मैं" "ए" को जोड़ता है और अधिकांश बटन स्थान "i" की पृष्ठभूमि छवि से होता है, इसलिए जब मैं बटन को छूने की कोशिश करता हूं और यदि मेरी उंगली छवि पर है, तो पाठ नहीं , हैंडलर निकाल दिया नहीं जाता है। मैं इसे कैसे सुधार सकता हूं? – Neutralizer

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