दिलचस्प पोस्ट
बेस के लिए आधार -2 द्विआधारी संख्या स्ट्रिंग में कनवर्ट करें एंड्रॉइड: कीपैड को हमेशा कैसे दिखाना है? आवधिक अप समय समाप्त कैसे फोन आंदोलन बाकी से ऊर्ध्वाधर दिशा में गणना करने के लिए? EAGLView से UIImage कैसे प्राप्त करें? RepaintManager से अपवाद कैसे उत्पन्न करें SSIS से HTTP अनुरोध कैसे करें? जावास्क्रिप्ट समारोह घोषणा और मूल्यांकन आदेश jquery के बिना jquery 'ट्रिगर' विधि के बराबर क्या है? क्या HTML एन्कोडिंग सभी प्रकार के एक्सएसएस हमलों को रोक सकता है? PHP का उपयोग करते हुए कॉलम में सभी मान कैसे प्राप्त होते हैं? जावास्क्रिप्ट में स्ट्रिंग से दिनांक ऑब्जेक्ट कैसे बनाएं जब मुख्य () निकल जाता है तो अलग थ्रेड का क्या होता है? जेएसपी / सर्लेट अनुरोध के रूप में यूनिकोड वर्ण कैसे पास करें। मैं फाइलों को जार फ़ाइल के अंदर कैसे सूचीबद्ध करूं?

तत्व की आईडी प्राप्त करना जो एक घटना को निकाल दिया

क्या किसी तत्व को पहचानने का कोई तरीका है जो एक घटना को सक्रिय करता है?

मैं कुछ सोच रहा हूं:

<html> <head> <script type="text/javascript" src="starterkit/jquery.js"></script> <script type="text/javascript"> $(document).ready(function () { $("a").click(function () { var test = caller.id; alert(test.val()); }); }); </script> </head> <body> <form class="item" id="aaa"> <input class="title"></input> </form> <form class="item" id="bbb"> <input class="title"></input> </form> </body> </html> 

पाठ्यक्रम को छोड़कर कि var test में आईडी "aaa" होना चाहिए, अगर घटना को पहले प्रपत्र से निकाल दिया गया है, और "bbb" , अगर घटना दूसरे फॉर्म से निकाल दी गई है।

वेब के समाधान से एकत्रित समाधान "तत्व की आईडी प्राप्त करना जो एक घटना को निकाल दिया"

JQuery में event.target हमेशा उस तत्व को संदर्भित करता है जो ईवेंट को ट्रिगर करता है, जहां 'event' फ़ंक्शन के लिए पारित पैरामीटर है। http://api.jquery.com/category/events/event-object/

 $(document).ready(function() { $("a").click(function(event) { alert(event.target.id); }); }); 

यह भी ध्यान रखें कि 'this' भी काम करेगा, लेकिन यह एक jQuery ऑब्जेक्ट नहीं है, इसलिए यदि आप उस पर jQuery फ़ंक्शन उपयोग करना चाहते हैं तो आपको इसे '$(this)' रूप में संदर्भित करना होगा, जैसे:

 $(document).ready(function() { $("a").click(function(event) { // this.append wouldn't work $(this).append(" Clicked"); }); }); 

संदर्भ के लिए, यह कोशिश करो! यह काम करता हैं!

 jQuery("classNameofDiv").click(function() { var contentPanelId = jQuery(this).attr("id"); alert(contentPanelId); }); 

यद्यपि अन्य पदों में इसका उल्लेख किया गया है, मैं इसे बाहर स्पेल करना चाहता हूं:

$(event.target).id अपरिभाषित है

$(event.target)[0].id आईडी विशेषता देता है।

event.target.id भी आईडी विशेषता देता है।

this.id आईडी विशेषता देता है।

तथा

$(this).id अपरिभाषित है

अंतर, ज़ाहिर है, jQuery के ऑब्जेक्ट्स और डोम ऑब्जेक्ट्स के बीच है। "id" एक DOM फ़ंक्शन है, इसलिए आपको इसका उपयोग करने के लिए DOM तत्व ऑब्जेक्ट पर होना चाहिए।

(यह मुझे फिसल गया, इसलिए यह शायद किसी और को फिसल गया)

सभी घटनाओं के लिए, केवल jQuery का उपयोग नहीं कर सकते हैं

 var target = event.target || event.srcElement; var id = target.id 

जहां event.target विफल रहता है, वह event.srcElement लिए वापस आता है। event.srcElement लिए। उपरोक्त कोड को स्पष्ट करने के लिए jQuery की आवश्यकता नहीं होती है बल्कि यह jQuery के साथ भी काम करता है।

आप वस्तु को संदर्भित करने के लिए (this) उपयोग कर सकते हैं जो फ़ंक्शन को निकाल दिया।

जब आप कॉलबैक फ़ंक्शन के अंदर होते हैं तो 'this' डीओएम 'this' तत्व है (उदाहरण के लिए jQuery के संदर्भ में), उदाहरण के लिए, क्लिक, प्रत्येक, बाइंड इत्यादि द्वारा कहा जा रहा है।

यहां आप अधिक जानकारी प्राप्त कर सकते हैं: http://remysharp.com/2007/04/12/jquerys-this-demystified/

मैं एक डेटाबेस को गतिशील रूप से एक टेबल से उत्पन्न करता हूं, डेटा को JSON में प्राप्त करता है और इसे एक तालिका में डालता है प्रत्येक तालिका पंक्ति को एक अनन्य ID मिली, जो आगे की कार्रवाइयों के लिए आवश्यक है, इसलिए, यदि DOM को बदल दिया गया है तो आपको एक अलग दृष्टिकोण की आवश्यकता है:

 $("table").delegate("tr", "click", function() { var id=$(this).attr('id'); alert("ID:"+id); }); 

एक jQuery ऑब्जेक्ट के रूप में स्रोत तत्व प्राप्त किया जाना चाहिए

 var $el = $(event.target); 

यह आपको उस तत्व के बजाय क्लिक का स्रोत लेता है, जिसे क्लिक फ़ंक्शन को भी असाइन किया गया था। उपयोगी हो सकता है जब क्लिक ईवेंट किसी तालिका ऑब्जेक्ट पर ईजी.ए क्लिक ईवेंट पर होता है, और आपको उस कक्ष की आवश्यकता होती है जिसे क्लिक किया गया था

 $("tr").click(function(event){ var $td = $(event.target); }); 

तत्व जो घटना को निकाल दिया था, वह घटना संपत्ति में है

 event.currentTarget 

हमें डोम नोड ऑब्जेक्ट मिलता है जिस पर ईवेंट हैंडलर सेट किया गया था।


अधिकांश नेस्टेड नोड ने हमें बुउबलिंग प्रक्रिया शुरू की है

 event.target 

इवेंट ऑब्जेक्ट हमेशा ईवेंट हैंडलर का पहला विशेषता है, उदाहरण:

 document.querySelector("someSelector").addEventListener(function(event){ console.log(event.target); console.log(event.currentTarget); }); 

इवेंट प्रतिनिधिमंडल के बारे में अधिक आप http://maciejsikora.com/standard-events-vs-event-delegation/ में पढ़ सकते हैं

आप उपयोग करने का प्रयास कर सकते हैं:

 $('*').live('click', function() { console.log(this.id); return false; }); 

प्रत्यायोजित ईवेंट हैंडलर के मामले में, जहां आपके पास ऐसा कुछ हो सकता है:

 <ul> <li data-id="1"> <span>Item 1</span> </li> <li data-id="2"> <span>Item 2</span> </li> <li data-id="3"> <span>Item 3</span> </li> <li data-id="4"> <span>Item 4</span> </li> <li data-id="5"> <span>Item 5</span> </li> </ul> 

और आपके जेएस कोड की तरह:

 $(document).ready(function() { $('ul').on('click li', function(event) { var $target = $(event.target), itemId = $target.data('id'); //do something with itemId }); }); 

आप अधिक से अधिक आइटम आयडी undefined पाएंगे, क्योंकि LI की सामग्री <span> में लपेटी जाती है, जिसका मतलब है कि <span> शायद ईवेंट का लक्ष्य होगा आप इस तरह एक छोटे से जांच के साथ मिल सकते हैं, जैसे:

 $(document).ready(function() { $('ul').on('click li', function(event) { var $target = $(event.target).is('li') ? $(event.target) : $(event.target).closest('li'), itemId = $target.data('id'); //do something with itemId }); }); 

या, यदि आप पठनीयता को अधिकतम करना चाहते हैं (और jQuery के रैपिंग कॉल्स की अनावश्यक पुनरावृत्ति से भी बचें):

 $(document).ready(function() { $('ul').on('click li', function(event) { var $target = $(event.target), itemId; $target = $target.is('li') ? $target : $target.closest('li'); itemId = $target.data('id'); //do something with itemId }); }); 

इवेंट डेलिगेशन का उपयोग करते समय, .is() पद्धति यह सत्यापित करने के लिए अमूल्य है कि आपका ईवेंट लक्ष्य (अन्य बातों के अलावा) वास्तव में आपको इसकी आवश्यकता है DOM ट्री को खोजने के लिए .closest(selector) का उपयोग करें, और .find(selector) उपयोग करें (आमतौर पर .first() के साथ मिलकर, .find(selector).first() ) के रूप में इसे नीचे खोजने के लिए। आपको .first() का उपयोग करने की आवश्यकता नहीं है .closest() , क्योंकि यह केवल पहले मेलिंग पूर्वज तत्व को देता है, जबकि। .find() सभी मेलिंग वंश को रिटर्न देता है।

उपर्युक्त उत्तर में वर्णित घटना पैरामीटर की तुलना में यह उच्च z-index पर कार्य करता है:

 $("#mydiv li").click(function(){ ClickedElement = this.id; alert(ClickedElement); }); 

इस तरह आप हमेशा (इस उदाहरण में li ) तत्व का id प्राप्त करेंगे। जब भी माता-पिता के बच्चे के तत्व पर क्लिक किया जाता है ..

इस्तेमाल कर सकते हैं इवेंट पर

  $("table").on("tr", "click", function() { var id=$(this).attr('id'); alert("ID:"+id); }); 
 var buttons = document.getElementsByTagName('button'); var buttonsLength = buttons.length; for (var i = 0; i < buttonsLength; i++){ buttons[i].addEventListener('click', clickResponse, false); }; function clickResponse(){ // do something based on button selection here... alert(this.id); } 

यहां काम करता है जेएसएफडियल

this.element.attr("id") IE8 में ठीक काम करता है।

इन दोनों काम,

 jQuery(this).attr("id"); 

तथा

 alert(this.id); 

बस this संदर्भ का उपयोग करें

 $(this).attr("id") 

या

 $(this).prop("id")