दिलचस्प पोस्ट
डीबी कनेक्शन जानकारी लोड करने के लिए प्रॉपर्टी फाइलों का उपयोग करने के लिए टोमकैट कॉन्फ़िगर करें कैसे multitouch निष्क्रिय करने के लिए? Async / await के साथ काम करने के लिए TransactionScope प्राप्त करें एसक्यूएललेमी, to_sql का इस्तेमाल करते हुए पंडों के साथ MySQL डाटाबेस में लेखन वैकल्पिक बाइंडिंग के माध्यम से स्विफ्ट में सुरक्षित (बाउंड-चेक) सरणी लुकअप? मैं SQL सर्वर में एक ही बोली से कैसे बचूं? कुछ परिस्थितियों में आवश्यक सत्यापन विशेषता अक्षम करें क्या एक जावास्क्रिप्ट एमवीसी (माइक्रो-) फ्रेमवर्क है? अच्छी तरह से, स्टड :: अनूठे_पीटआर का कस्टम डिलर कैसे काम करता है? सी # का उपयोग कर अन्य अनुप्रयोग को नियंत्रित करें कॉरस: प्रवेश-नियंत्रण-अनुमति-मूल में वाइल्डकार्ड का उपयोग नहीं किया जा सकता है, जब क्रेडेंशियल्स ध्वज सच है इकाई फ़्रेमवर्क कोड प्रथम: एनोटेशन का उपयोग करके एक-से-एक विदेशी कुंजी संबद्धता सेट करना जेपीईजी मेटाडाटा (अभिविन्यास) पढ़ने में समस्या जावास्क्रिप्ट में लांग प्रेस? HTML5 संख्या इनपुट – हमेशा 2 दशमलव स्थान दिखाएं

एक ही समारोह ट्रिगर करने के लिए jQuery के कई ईवेंट

क्या एक तरह से keyup , keyup , blur , और change ईवेंट को एक ही फ़ंक्शन को एक पंक्ति में कहते हैं या मुझे उन्हें अलग से करना है?

मेरे पास समस्या यह है कि मुझे डीबी लुकअप के साथ कुछ डेटा को मान्य करने की आवश्यकता है और यह सुनिश्चित करना चाहेंगे कि सत्यापन का कोई रास्ता नहीं है जो इसे मौसम में खो दिया है या बॉक्स में चिपकाया गया है।

Solutions Collecting From Web of "एक ही समारोह ट्रिगर करने के लिए jQuery के कई ईवेंट"

आप फ़ंक्शन को एकाधिक ईवेंट में बाँध करने के लिए .on() का उपयोग कर सकते हैं:

 $('#element').on('keyup keypress blur change', function(e) { // e.type is the type of event fired }); 

या फ़ंक्शन को सामान्य ईवेंट फ़ंक्शंस के पैरामीटर के रूप में पास करें:

 var myFunction = function() { ... } $('#element') .keyup(myFunction) .keypress(myFunction) .blur(myFunction) .change(myFunction) 

JQuery 1.7 के रूप में, इवेंट हैंडलर्स को एक दस्तावेज़ में संलग्न करने के लिए .on() विधि पसंदीदा विधि है। पहले के संस्करणों के लिए, .bind() विधि तत्वों को सीधे एक घटना हैंडलर संलग्न करने के लिए उपयोग किया जाता है

 $(document).on('mouseover mouseout',".brand", function () { $(".star").toggleClass("hovered"); }) 

आप कई घटनाओं को समारोह संलग्न करने के लिए बाँध विधि का उपयोग कर सकते हैं। बस इस नाम के रूप में ईवेंट नाम और हैंडलर कार्य को पास करें:

 $('#foo').bind('mouseenter mouseleave', function() { $(this).toggleClass('entered'); }); 

एक अन्य विकल्प के लिए jquery एपीआई के चेनिंग समर्थन का उपयोग करना है

यदि आप एक ही इवेंट हैंडलर को कई इवेंट में देते हैं, तो आप अक्सर उनमें से एक से अधिक फ़ायरिंग के मुद्दे पर चलाते हैं (जैसे कि संपादन के बाद उपयोगकर्ता प्रेस दबाएं; कुंजीडाउन, परिवर्तन, और धुंधला सभी आग लग सकता है)।

ऐसा लगता है कि आप वास्तव में क्या चाहते हैं ऐसा कुछ है:

 $('#ValidatedInput').keydown(function(evt) { // If enter is pressed if (evt.keyCode === 13) { evt.preventDefault(); // If changes have been made to the input's value, // blur() will result in a change event being fired. this.blur(); } }); $('#ValidatedInput').change(function(evt) { var valueToValidate = this.value; // Your validation callback/logic here. }); 

आप उस फ़ंक्शन को परिभाषित कर सकते हैं जिसे आप निम्न के रूप में पुनः उपयोग करना चाहते हैं:

 var foo = function() {...} 

और बाद में आप ('ईवेंट') का उपयोग करते हुए उस फ़ंक्शन को ट्रिगर करने के लिए अपने ऑब्जेक्ट पर आप चाहते हैं कि कई ईवेंट श्रोताओं को नीचे सेट के बीच में एक स्थान छोड़कर सेट कर सकते हैं:

 $('#selector').on('keyup keypress blur change paste cut', foo); 

यह मेरा इसे करने का तरीका है।

  $("input[name='title']").on({ "change keyup": function(e){ var slug = $(this).val().split(" ").join("-").toLowerCase(); $("input[name='slug']").val(slug); }, }); 

टाटू का जवाब है कि मैं इसे सहजता से कैसे करूँगा, लेकिन इंटरनेट एक्सप्लोरर में नेस्टिंग / बाध्यकारी घटनाओं के साथ इस समस्या का अनुभव किया है, भले ही यह .on() विधि के माध्यम से किया जाता है।

मैं वास्तव में jQuery के ये संस्करणों को ठीक करने में सक्षम नहीं हूं I लेकिन मैं कभी-कभी निम्नलिखित संस्करणों में समस्या देखता हूं:

  • 2.0.2
  • 1.10.1
  • 1.6.4
  • मोबाइल 1.3.0b1
  • मोबाइल 1.4.2
  • मोबाइल 1.2.0

मेरा समाधान पहले कार्य को परिभाषित करना है,

 function myFunction() { ... } 

और फिर व्यक्तिगत रूप से घटनाओं को संभालना

 // Call individually due to IE not handling binds properly $(window).on("scroll", myFunction); $(window).on("resize", myFunction); 

यह सबसे सुंदर समाधान नहीं है, लेकिन यह मेरे लिए काम करता है, और मैंने सोचा कि मैं इसे दूसरों के लिए मदद कर दूंगा जो इस मुद्दे पर ठोकर खा सकता है

"क्या एक तरह से keyup , keyup , blur , और change ईवेंट एक ही फ़ंक्शन को एक पंक्ति में कहते हैं?"

यह संभव है .on() , जो निम्नलिखित संरचना को स्वीकार करता है: .on( events [, selector ] [, data ], handler ) , ताकि आप इस विधि में कई इवेंट्स पास कर सकें। आपके मामले में यह इस प्रकार दिखना चाहिए:

 $('#target').on('keyup keypress blur change', function(e) { // "e" is an event, you can detect the type of event using "e.type" }); 

और यहां लाइव उदाहरण है:

 $('#target').on('keyup keypress blur change', function(e) { console.log(`"${e.type.toUpperCase()}" event happened`) }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input id="target">