javascript - Event target matches but function is not called? -
निम्नलिखित jquery पर विचार करें:
$ ('। प्रविष्टि लिंक: नहीं (। $ ('Li a', this) .click (फ़ंक्शन (इवेंट)) {$ लक्ष्य} $ ('लिंक्स-संसाधित') = $ (Event.target); var tabPics = $ ('# tab-pics & gt; a'); यदि ($ target === टैबपरिक्स) {tabTest.getPics ();} $ ('। एंट्री-लिंक ली' ) .removeClass ('सक्रिय'); $ (यह) .addClass ('सक्रिय'); var id = $ (this) .attr ('href'); $ ('। प्रविष्टि बॉक्स: नहीं (' + आईडी + ')')। छिपाना (); $ (आईडी)। दिखाएं (); वापस लौटाना;});}); मेरे पास तीन टैब्स या मेनू आइटम हैं: जब आप एक पर क्लिक करते हैं, तो यह कोड दूसरों के कंटेंट भाग को छिपाएगा।
इसमें से, निम्नलिखित भाग इस प्रश्न का फोकस है:
$ target = $ (event.target); Var tabPics = $ ('# tab-pics & gt; a'); अगर ($ लक्ष्य === टैबपरिक्स) {tabTest.getPics (); } कोड स्निपेट के रूप में दिखाता है, जब मैं चित्र टैब पर क्लिक करता हूं, तब फ़ंक्शन कॉल करने की कोशिश कर रहा हूं। ब्रेकपॉइंट का उपयोग करते हुए मेरे कोड के बाद, मुझे लगता है कि मैं $ लक्ष्य को सफलतापूर्वक और अभी तक कैप्चर कर रहा हूं, भले ही वह टैबपीिक्स से मेल खाती है, फ़ंक्शन कॉल छोड़ दिया जाता है और शेष कोड सामान्य रूप से चलता है।
यदि मेरे पास है आपका मूल तरीका काम नहीं करता क्योंकि आप दो भिन्न वस्तुओं की समानता का परीक्षण कर रहे थे:
var $ target = $ (event.target); Var tabPics = $ ('# tab-pics & gt; a'); जब आप किसी चयनकर्ता या मौजूदा डोमेन तत्व पर jQuery कॉल करते हैं, तो वह उन तत्वों को लपेटने का एक संस्करण देता है जो इसे मैच के लिए तय करता है। हर बार जब यह ऑब्जेक्ट अलग होता है, तो निम्न कोड:
यदि ($ target === tabPics) {/// यह अभ्यस्त हो सकता है} यह कहने के समान है:
यदि ({} === {}) {/// न यह होगा} और ऊपर के समय कोड दोनों ऑब्जेक्ट्स समान रूप से दिखते हैं, भले ही आप करें:
यदि ({a: 123} === {a: 123}) {/// नहीं ...} जावास्क्रिप्ट अभी भी उपर्युक्त के रूप में गलत मानता है, क्योंकि जब === का उपयोग करते हुए ऑब्जेक्ट्स की तुलना करते हैं तो वस्तुओं को एक ही वस्तु होना चाहिए, वे अलग-अलग ऑब्जेक्ट नहीं हो सकते हैं एक ही सामग्री के साथ। निम्न लिंक का उपयोग किया जा सकता है:
उम्मीद है कि भ्रम को साफ करता है मैं देख सकता हूं कि आपका तर्क कहाँ जा रहा था, और किसी अन्य भाषा में यह समझ सकता था, यह सिर्फ यह नहीं है कि कैसे === जावास्क्रिप्ट में काम करता है जब परीक्षण ऑब्जेक्ट्स।
Comments
Post a Comment