2011-09-23 14 views
13

कई मामलों में, मुझे लोड होने के बाद किसी तत्व को व्यवहार करने की आवश्यकता होती है, और फिर एक ईवेंट ट्रिगर करने (जैसे "परिवर्तन") के बाद। मुझे लगता है कि सबसे अच्छा तरीका है एक ही पंक्ति में इसे बनाने के लिए होगा:Jquery: बाध्य लोड + एक साथ बदलना

$('#element_id').bind('load, change', function() { 
... 
}); 

लेकिन यह केवल "परिवर्तन" और नहीं "लोड" के लिए के लिए काम करता है। एक बेहतर रास्ता है?

+0

मैंने कॉमा हटा दिया, लेकिन यह वैसे भी काम नहीं करता है। मुझे लगता है कि – max

उत्तर

36

मैं एक ही समस्या के पार ठोकर खाई। अल्पविराम निकाला जा रहा है, पर्याप्त नहीं है तो कम से कम नहीं इस मामले में:

$(document).ready(function(){ 
    $('#element_id').bind('load change', function() { 
     ... // (this DOESN'T get called on page load) 
    }); 
}); 

मुझे लगता है कि load घटनाओं $(document).ready() पहले ट्रिगर मिलता है।

यह एक सरल उपाय है:

$(document).ready(function(){ 
    $('#element_id').bind('change', function() { 
     ... 
    }); 
    $('#element_id').trigger('change'); 
}); 
+0

यहां तक ​​कि यह परिवर्तन घटना को अरबों बार लूप करेगा। कोई विचार क्यों नहीं। मैंने इस विधि और दूसरों की कोशिश की और यह सिर्फ लूप चाहता है। –

+0

क्या आप समारोह के अंदर घटना को ट्रिगर कर रहे हैं? यह लूप नहीं होना चाहिए, कहीं एक त्रुटि होनी चाहिए। आप एक अलग प्रश्न में एक न्यूनतम त्रुटि केस और कोड पोस्ट करने का प्रयास कर सकते हैं; सबसे अधिक संभावना है कि आप "पोस्ट" बटन मारने से पहले इसे समझ लेंगे। :) – johndodo

+0

फ़ंक्शन के अंदर इसे ट्रिगर नहीं कर रहा है। $ ('# कर्मचारी डॉपडाउन')। ('चेंज', फंक्शन (इवेंट) { var form = $ (event.target)। पैरेंट्स ("फॉर्म"); form.submit(); })। ट्रिगर ('परिवर्तन'); या यहां तक ​​कि जैसा कि आप इसे ऊपर रखते हैं, इसे लूप का कारण बन जाएगा। –

1

क्या आपको केवल अल्पविराम को हटाने की आवश्यकता नहीं है?

+0

लोड के साथ कुछ सीमाएं होंगी: http://api.jquery.com/bind/ –

4

पहले से ही भरी हुई सामग्री के लिए जब आप एक घटना पर एक समारोह को चलाना चाहते हैं और यह भी सीधे, आप को ट्रिगर से बचने के लिए अपने स्वयं के नामकरण के एक कस्टम घटना का उपयोग कर सकते निर्मित घटनाओं पर पुस्तकालयों से मौजूद किसी भी मौजूदा बाइंडिंग, उदाहरण के लिए

$(".my-selector").on("change rightnow", function() { 
    // do stuff... 
}).triggerHandler("rightnow"); 
संबंधित मुद्दे