javascript - Using a function while keeping "this" -


मेरे पास वर्तमान में एक फ़ंक्शन सेट है:

  $ ('। Color' ) .each (फ़ंक्शन () {$ (यह) .val ('सामान');});  

जैसा कि आप देख सकते हैं, प्रत्येक .color फ़ंक्शन के लिए, मैं चयनित "कलर वस्तु" का "सामान" के लिए वैल सेट कर रहा हूं।

हालांकि, मैं केवल जब माउस ने क्लिक किया है तो $ this का मान सेट करना चाहते हैं उदाहरण के लिए:

  $ ('। Color')। प्रत्येक (फ़ंक्शन () {$ (विंडो) .mouseup (function () {$ (this) .val ('stuff'); });});  

हालांकि, यह .color पर मूल्य रखने के बजाय यह को विंडो बदल देगा (या इसलिए मुझे लगता है कि जब तक मैं गलत नहीं होता।)

मैं अभी भी $ (this) का उपयोग कैसे कर सकता हूँ, जबकि वही मूल्य रखते हुए जैसे कि इसके ऊपर कोई अन्य कार्य नहीं था?

मुझे लगता है कि आप पंजीकरण वाले ईवेंट के साथ एक सामान्य <कोड वाले तत्वों के लिए गलत समझा > वर्ग । आपको इसे पुनरावृति करने की ज़रूरत नहीं है, बस निम्नलिखित स्निपेट का उपयोग करें।

कोशिश करो,

  $ ('। Color')। Mouseup (function () {$ ( यह) .val ('सामान');});  

मुझे लगता है कि आप ऐसा कुछ ढूंढ सकते हैं,

  $ (window) .mouseup (function (e) {if ($ (e.target) ) .इस ('। रंग')) {$ (e.target) .val ('सामग्री');}});  

और अंत में, यदि आप गलत तरह से जाना चाहते हैं, तो आप कैश वेरिएबल्स का उपयोग करके अपने कोड को सही कर सकते हैं, जिसका मतलब है कि घटना बाध्यकारी से पहले वर्तमान ऑब्जेक्ट कैश करें।

> var कैशे $ = (खिड़की); $ ('। रंग') प्रत्येक (फ़ंक्शन () {var cacheThis = $ (this); cacheWinow.mouseup (फ़ंक्शन () {cacheThis.val ('stuff');})}}

Comments

Popular posts from this blog

c# - Reactive Extensions ControlScheduler -

multithreading - Reorderings in java memory model -

java - Add color code support to a Bukkit plugin -