के साथ event.data सेट कर सकते हैं jquery .on() के साथ आप ईवेंट डेटा सेट करने के लिए एक वैकल्पिक पैरामीटर पास कर सकते हैं। क्या आप इसे ट्रिगर के साथ भी कर सकते हैं?क्या आप jquery ट्रिगर
उत्तर
मुझे आशा है कि मुझे आपको गलत नहीं मिलेगा, लेकिन क्या आपका मतलब trigger
विधि के साथ अतिरिक्त डेटा पास करना है?
$(app.Model).trigger("foo", additionalData);
और कहीं और ...
$(app.Model).on("foo", callback);
var callback = function(event, additionalData) {
console.log(additionalData);
}
ध्यान दें कि अगर आप trigger
साथ अतिरिक्त डेटा भेजने, कॉलबैक फ़ंक्शन में अपना पहला पैरामीटर हमेशा वास्तविक घटना आप को ट्रिगर कर रहे है।
app.Model
मैं ब्रांड्स में उपयोग करता हूं वह ऑब्जेक्ट है जो किसी ईवेंट को ट्रिगर करना चाहिए और यह उस ईवेंट को भी सुनता है। इसे एक नामस्थान के रूप में सोचें। आप हमेशा document
, किसी भी डॉम चयनकर्ता या यहां तक कि ऑब्जेक्ट की तरह भी ऑब्जेक्ट कर सकते हैं, बस सुनिश्चित करें कि trigger
और on
दोनों को समान ऑब्जेक्ट का उपयोग करना चाहिए (यानी, DOM तत्व जो डीओएम से हटाए गए हैं अस्थायी रूप से त्रुटि-प्रवण हैं) ।
आप इस तरह से कर सकते हैं: -
उदाहरण
//Create a new jQuery.Event object without the "new" operator.
var e = jQuery.Event("click");
// trigger an artificial click event
jQuery("body").trigger(e);
आप एक ही दृष्टिकोण के साथ event.data भी पारित कर सकते हैं। इसका संदर्भ लें Event Object
क्या आप इस उदाहरण के साथ event.data को पास करने के लिए कोड उदाहरण के साथ दिखा सकते हैं? – user570605
var e = jQuery.Event ("क्लिक करें"); e.data = "एक अच्छा डेटा"; jQuery ("बॉडी")। ट्रिगर (ई); – Dorad
यह प्रश्न इस प्रश्न के लिए ** सही ** उत्तर है। अन्य "उत्तर" हैक हैं। – vsync
हां। प्रलेखन कहते हैं:
.trigger (eventType [, extraParameters])
नोट अतिरिक्त पैरामीटर हम यहाँ से गुजर रहे हैं और
.bind()
विधि के लिएeventData
पैरामीटर के बीच का अंतर। दोनों इवेंट हैंडलर को जानकारी उत्तीर्ण करने के लिए तंत्र हैं, लेकिनextraParameters
.trigger()
पर तर्क को ईवेंट ट्रिगर होने पर निर्धारित करने की अनुमति देता है, जबकिeventData
.bind()
पर तर्क की आवश्यकता होती है जब हैंडलर बाध्य होने पर पहले से ही गणना की जानी चाहिए ।
मैं एक वैकल्पिक हल पता है कि हम इस
$("button").on("click", function(event) {
event.data = $(this).data('events'); // get the data value
alert(event.data); //use your data as you want
});
//Now set the data value and trigger
$("button").data('events','youreventsvalue').trigger("click");
यहाँ के लिए उपयोग कर सकते हैं एक demo
यह एक वैध समाधान है। डाउनवोट क्यों? – Starx
jQuery साइट में है आप trigger
समारोह के लिए घोषणा देख सकते हैं: .trigger(eventType [, extraParameters])
extraParameters
एक सरणी या एक वस्तु होना चाहिए और आपको इन वस्तुओं को तर्क के साथ प्राप्त करने की अनुमति होगी [1+] (तर्क [0] है घटना वस्तु के बराबर)।
तो, यहाँ एक उदाहरण है:
$('#foo').bind('custom', function(event) {
if (arguments.length > 1) {
$.each(arguments, function(i,arg){
alert("element " + i + " is " + arg);
})
}
});
$('#foo').trigger('custom', ['Custom', 'Event', { 'test' : 'attr from object' }, 123]);
जहाँ तक मुझे पता है, एक ही dataObject
है कि आप के साथ परिभाषित मूल:
$('selector').on('eventName', dataObject , functionName)
भी जब आप `$ का उपयोग भी भेजे जाएंगे ('चयनकर्ता')। गति प्रदान ('घटनानाम')।
आप पैरामीटर (उनके उत्तरों में अन्य उल्लेखों की तरह) भी पास कर सकते हैं लेकिन उन पैरामीटर अतिरिक्त तर्क होंगे (आपके पास dataObject
होगा जो आपने .on()
फ़ंक्शन में सेट किया है)।
अच्छा बिंदु। यह उल्लेखनीय है कि डेटा ऑब्जेक्ट घटना की डेटा प्रॉपर्टी द्वारा पहुंचा जा सकता है। इस फ़ंक्शन की तरह कुछ (ई) {console.log (e.data)} –
यह वह दृष्टिकोण था जिसे मैंने लिया था।
$('#foo').on('click', { init: false }, function(e, data) {
data = data || e.data;
console.log(data.init); // will be true in the trigger, and false in the click.
})
.trigger('click', { init: true });
लघु उत्तर:
कर सकते हैं ट्रिगर() पास अपने ईवेंट हैंडलर्स के लिए डेटा? हाँ (के रूप में अतिरिक्त पैरामीटर)
ट्रिगर() event.data में पास डेटा सीधे आपत्ति कर सकते हैं? नहीं (केवल पर () करता है)
// Using this will pass myData to every event handler as the second parameter.
trigger('myEvent', [myData])
// Instead of this
on('myEvent', function(evt) {...});
// You would do this
on('myEvent', function(evt, myData) {...});
लांग उत्तर
ट्रिगर() विधि 5 मुख्य काम करता है।
- यह प्रकार और वैकल्पिक नाम स्थान आप इसे देने के साथ एक JQueryEventObject बनाता
- यह भेजता है या एक विशेष प्रकार का है कि डोम अप यात्रा जब तक यह शीर्ष तक पहुँच जाता है या उसके प्रचार बंद कर दिया है की एक घटना का उत्सर्जन करता है।
- यह उस प्रकार की घटना के लिए ईवेंट हैंडलर के हस्ताक्षर को परिभाषित करता है।
- समारोह (घटना) {...} डिफ़ॉल्ट
- है यह उन संचालकों को पहले पैरामीटर के रूप घटना गुजरता
- यह (वैकल्पिक) घटना के किसी भी संचालकों में अतिरिक्त पैरामीटर गुजरता
- समारोह (घटना, additionalParams) {}
संख्या 3 और 5 आपके लिए सबसे महत्वपूर्ण और प्रासंगिक हैं। चूंकि आप इस घटना को संभालने के लिए एपीआई को स्पष्ट रूप से परिभाषित करते हैं, इसलिए आप इस बात को सुसंगत बनाना चाहते हैं कि आप ईवेंट कैसे ट्रिगर करते हैं ताकि आपके कोड का उपयोग करने वाले लोग इस बात का पालन कर सकें कि वे इसका उपयोग कैसे करते हैं।
jQuery(document).on('eventName' {eventData1: 'foo', eventData2: 'bar'}, function (evt, extraParam1, extraParam2) {
//This code runs when the event is triggered
console.log(evt.data.eventData1) // foo
console.log(evt.data.eventData2) // bar
console.log(extraParam1) // 'extra param 1'
console.log(extraParam2) // 'extra param 2'
});
jQuery(document).trigger('eventName', ['extra param 1', 'extra param 2']);
तो बस याद रखें:
उदाहरण 1 संगति
function Car(speed, tires, brakes) {
this.speed = speed;
this.tires = tires;
this.brakes = brakes;
}
Car.prototype.brake = function(amount) {
// You can do this (Event handler will have access to these parameters)
car.trigger('brake.car', [this.speed, this.brakes, this.tires, amount])
// Or this (Event handler will have access to these parameters)
car.trigger('brake.car', [this, amount])
// but try not to mix and match with the same event type
}
...
//This is the first way from above (choose one or the other, but don't mix and match).
passenger.on('brake.car', {person: passenger}, function(evt, carSpeed, carBrakes, carTires, brakeAmount){
if(brakeAmount > 50)
passenger.hangOnTight();
}
})
...
// This is the second way from above (choose one or the other, but don't mix and match).
passenger.on('brake.car', function(evt, car, brakeAmount){
if(brakeAmount > 50)
passenger.hangOnTight();
}
})
उदाहरण 2 यहाँ)) ठेठ दोनों ट्रिगर (दिखा उदाहरण और पर (है।
- .trigger(): घटना, आदि लगातार फेंकना और पैरामीटर 2, 3 को परिभाषित करता है, तो
- .on जरूरत(): घटना डोम खलबली मचाने वाले है। कुछ सामान करें, ईवेंट डेटा में जोड़ें या उपयोग करें और जोड़े गए ट्रिगर करने वाले अतिरिक्त पैरा का उपयोग करें।
उत्कृष्ट उत्तर। –
अच्छा जवाब लेकिन मैं इसका उपयोग करने में असमर्थ हूं जबकि मेरा डीओएम तत्व गतिशील रूप से (AJAX कॉल) जोड़ा गया है .. बहुत खराब – Delphine
मुझे इसके पीछे दर्शन को समझने में थोड़ी देर लग गई। एक कार्यक्रम में दो इकाइयां शामिल हैं: श्रोता और प्रेषक। event.data
फ़ील्ड केवल श्रोता द्वारा उपयोग किया जाने का इरादा था। यह एक तरह से एक फोन नंबर के लिए एक नाम बताए की तरह है:
$("(818)548-2733").on("incomingcall", null, "Mom", pickup);
आप फोन उठाओ और दूसरी तरफ है कि वह अपने माँ है आपको बताने के लिए के लिए प्रतीक्षा कर सकते हैं। या आप इस घटना से संबंधित अतिरिक्त जानकारी संलग्न करने के लिए event.data
का उपयोग कर सकते हैं।
$.trigger
और $.triggerHandler
विधियों को किसी ईवेंट के प्रेषक पक्ष द्वारा बुलाया जाता है। यही कारण है कि वे आपको event.data
निर्दिष्ट नहीं करते हैं। इसके बजाय, आप उनके extraParameters
तर्क का उपयोग कर सकते हैं।
$("pressedButton").on("click", function(event) {
var buttonID = $(this).data('buttonID');
alert(buttonID); // alerts 'save' string passed as an argument
});
$("pressedButton").data('buttonID','save').trigger("click");
यह मान्य समाधान है। इसका प्रयोग करें, यह समान तरीके है ;-) –
... और एक सुपर खतरनाक तरीका है। क्या होगा यदि दबाए गए बटन पर पहले से डेटा है? यह पिछले डेटा आइटम्स को सुरक्षित रखने के लिए कुछ भी नहीं करता है। – dudewad
- 1. क्या jQuery ट्रिगर फ़ंक्शन सिंक्रोनस
- 2. Jquery: ट्रिगर
- 3. jQuery में ट्रिगर हैंडलर बनाम ट्रिगर
- 4. jQuery: पेस्ट ट्रिगर?
- 5. ट्रिगर jquery accordion मेनू?
- 6. jQuery ट्रिगर ऑन चेंज
- 7. jquery ट्रिगर ctrl +
- 8. jQuery सत्यापन ट्रिगर त्रुटि संदेश
- 9. लाइव ट्रिगर कैसे करें() jquery
- 10. jquery ui _trigger बनाम ट्रिगर
- 11. jQuery ट्रिगर घटना जब तत्व
- 12. jQuery ट्रिगर मोबाइल सफारी (आईपैड)
- 13. Jquery ट्रिगर कुंजी। कोड ईवेंट
- 14. एसक्यूएल - डीबी 2 ट्रिगर में आप सीएलओबी
- 15. मैन्युअल रूप से jquery keyup ट्रिगर करें?
- 16. ट्रिगर ('क्लिक') के बीच क्या अंतर है और jQuery (
- 17. क्या आप एक jquery मोडल डायलॉग
- 18. मैन्युअल रूप से jQuery सत्यापन ट्रिगर?
- 19. jQuery .submit() सफलता या विफलता ट्रिगर
- 20. ट्रिगर
- 21. क्या मैं माइक्रोसॉफ्ट ट्रिगर
- 22. कस्टम ईवेंट ट्रिगर करने वाला JQuery त्रुटि
- 23. पूर्ण कैलेंडर दिन पर ट्रिगर jQuery क्यूटीप
- 24. Jquery ट्रिगर क्लिक मैक, iPad और Iphone
- 25. एकाधिक कुंजीपटल ट्रिगर करने और jQuery
- 26. jQuery: ट्रिगर <एएसपी: लिंकबटन>
- 27. Jquery AJAXStart ट्रिगर नहीं होता है
- 28. ट्रिगर jQuery स्वत: पूर्ण मैन्युअल रूप से
- 29. ट्रिगर परिवर्तन घटना <select> jquery
- 30. jQuery केवल कुंजीपटल ईवेंट ट्रिगर करता है अगर यह jQuery
+1 आपके लिए, दस्तावेज़ वास्तव में इस अतिरिक्त डेटा तक पहुंचने का उल्लेख नहीं करते हैं। –