दिलचस्प पोस्ट
पीएल / एसक्यूएल, कैसे एक स्ट्रिंग में एकल बोली से बचने के लिए? आप आर में पुस्तकालय स्थान कैसे बदल सकते हैं? क्या जावास्क्रिप्ट में गतिशील स्कॉपिंग को हासिल करने के लिए संभव है? पासवर्ड को हैशिंग और एन्क्रिप्ट करने में अंतर .NET में रेफ़ और आउट पैरामीटर में अंतर एंड्रॉइड एनीमेशन ऑन एनीमेशन पर समाप्त नहीं हुआ है Django के माध्यम से जावास्क्रिप्ट को पायथन डेटा पास करना एडेप्टर से क्रियाकलाप विधि को कॉल करें एक कस्टम क्लास सूची को व्यवस्थित करें <T> Google स्प्रैडशीट से सही समय मान कैसे पढ़ें java.lang.OutOfMemoryError: मेवेन में जावा हीप स्पेस कैसे MySQL में एक विदेशी कुंजी बाधा अस्थायी रूप से अक्षम करने के लिए? एक handlebars.js में लॉजिकल ऑपरेटर {{#if}} सशर्त Google मानचित्र पर एक रेखा / पथ आरेखण करना Unrooted डिवाइस में संपत्ति फ़ोल्डर से डेटाबेस कॉपी करें

jQuery 1.9 .live () फ़ंक्शन नहीं है

मैंने हाल ही में 1.8 से 2.1 के लिए jQuery को अपडेट किया है। मुझे अचानक पता चला कि .live() काम बंद हो जाता है
मुझे त्रुटि प्रकार त्रुटि मिलती है TypeError: $(...).live is not a function

क्या कोई तरीका है जिसे मैं .live() स्थान पर उपयोग कर सकता हूं?

वेब के समाधान से एकत्रित समाधान "jQuery 1.9 .live () फ़ंक्शन नहीं है"

jQuery .live() को संस्करण 1.9 से हटा दिया गया है।

इसका मतलब यह है कि अगर आप संस्करण 1.8 और इससे पहले के संस्करण में उन्नयन कर रहे हैं, तो आप नीचे की माइग्रेशन गाइड का पालन न करने पर आप को तोड़ने वाली बातों की सूचना देंगे। आपको बस .live() साथ।


इससे पहले कि आप एक खोज शुरू करें और बदलें:

किसी लाइव साइट पर त्वरित / हॉट फिक्स के लिए , बस कीवर्ड को इसके साथ live नहीं बदलें,
के रूप में पैरामीटर अलग हैं !

 .live(events, function) 

इसके लिए मानचित्र चाहिए:

 .on(eventType, selector, function) 

चयनकर्ता बहुत महत्वपूर्ण है! यदि आपको किसी भी कारण से इसका उपयोग करने की आवश्यकता नहीं है, तो उसे null सेट करें।


माइग्रेशन उदाहरण 1:

पहले:

 $('#mainmenu a').live('click', function) 

उसके बाद, आप बच्चे तत्व ( a ) को .on() चयनकर्ता में ले जाएँ:

 $('#mainmenu').on('click', 'a', function) 

प्रवासन उदाहरण 2:

पहले:

 $('.myButton').live('click', function) 

उसके बाद, आप तत्व (। .myButton ) को .myButton .on() चयनकर्ता पर ले जाएं, और निकटतम अभिभावक तत्व ढूंढें (प्राथमिक रूप से आईडी के साथ):

 $('#parentElement').on('click', '.myButton', function) 

यदि आपको नहीं पता कि माता-पिता के रूप में क्या रखा जाए, तो body हमेशा कार्य करता है:

 $('body').on('click', '.myButton', function) 

यह भी देखें:

  • jQuery – "live ()" के बजाय "पर ()" विधि का उपयोग कैसे करें?
  • jQuery 1.9 माइग्रेशन गाइड

आप निम्न कोड को शामिल करके अपने कोड को पुन: परिष्कृत करने से बचा सकते हैं

 jQuery.fn.extend({ live: function (event, callback) { if (this.selector) { jQuery(document).on(event, this.selector, callback); } } }); 

JQuery के एपीआई दस्तावेज़ीकरण संस्करण 1.7 के रूप में पदावनत रूप में live() सूचीबद्ध live() और संस्करण 1.9: लिंक के रूप में हटाया जाता है।

संस्करण पदावनत: 1.7, हटाया गया: 1.9

इसके अलावा यह कहा गया है:

JQuery 1.7 के रूप में, .live () विधि नापसंद है। ईवेंट हैंडलर संलग्न करने के लिए .on () का उपयोग करें JQuery के पुराने संस्करणों के उपयोगकर्ता का उपयोग करना चाहिए .delegate () पसंद करने के लिए .live ()

JQuery> = 1.9 के लिए .live() का अग्रेषित पोर्ट .live() पर जेएस निर्भरताओं को रिफैक्टर करने से बचाता है .live() अनुकूलित DOM चयनकर्ता संदर्भ का उपयोग करता है

 /** * Forward port jQuery.live() * Wrapper for newer jQuery.on() * Uses optimized selector context * Only add if live() not already existing. */ if (typeof jQuery.fn.live == 'undefined' || !(jQuery.isFunction(jQuery.fn.live))) { jQuery.fn.extend({ live: function (event, callback) { if (this.selector) { jQuery(document).on(event, this.selector, callback); } } }); } 

.live को 1.9 में हटा दिया गया था, कृपया नवीनीकरण मार्गदर्शिका देखें: http://jquery.com/upgrade-guide/1.9/#live-removed

.live () को नापसंद किया गया था और अब इसे jQuery 1.9 से हटा दिया गया है। आप का उपयोग करना चाहिए .on ()

एक बहुत ही सरल फिक्स को अपना कोड बदलने की आवश्यकता नहीं है, बस jquery माइग्रेशन स्क्रिप्ट जोड़ें, यहां डाउनलोड करें https://github.com/jquery/jquery-migrate/

यह jquery को नापसंद करता है लेकिन "लाइव", "ब्राउज़र" आदि जैसे आवश्यक फ़ंक्शन प्रदान करता है

मैं .on () सिंटैक्स का उपयोग नहीं करना चाहता, यदि आवश्यक न हो। उदाहरण के लिए आप इस तरह आसान स्थानांतरित कर सकते हैं:

पुराना:

 $('.myButton').live('click', function); 

नया:

 $('.myButton').click(function) 

यहां वैध ईवेंट हैंडलर्स की सूची है: https://api.jquery.com/category/forms/

केवल ऊपर से

यदि आपको नहीं पता कि माता-पिता के रूप में क्या रखा जाए, तो शरीर हमेशा कार्य करता है:

 $('body').on('click', '.myButton', function) $('.jcrop-tracker').live('dblclick', function () { $('#btnCrop').trigger("click"); }); 

हो जाता है

 $('body').on('dblclick', '.jcrop-tracker', function () { $('#btnCrop').trigger("click"); }); 

अगर आप Rails 'jquery jem jquery-rails पर रूबी का उपयोग करते हैं और किसी कारण से आप अपने विरासत कोड को रिफ़क्टर नहीं कर सकते, तो अभी भी समर्थन वाला अंतिम संस्करण 2.1.3 और आप इसे निम्न सिंटैक्स का उपयोग कर लॉक कर सकते हैं। आपकी Gemfile :

 gem 'jquery-rails', '~> 2.1', '= 2.1.3' 

तो आप अपडेट करने के लिए निम्न आदेश का उपयोग कर सकते हैं:

 bundle update jquery-rails 

मुझे आशा है कि दूसरों को समान समस्या का सामना करने में सहायता करें।