ट्रिगर नहीं कर कॉलबैक मैं ajax को गति प्रदान करने के लिए प्रयास कर रहा हूँ: एक दूरस्थ लिंक के लिए सफलता कॉलबैक। मैं रेल 3.0.8 और jquery-rails 1.0.11 पर हूं। मैं जावास्क्रिप्ट स्थापित करने के लिए jquery जेनरेटर भाग गया। Jquery और jquery_ujs दोनों को मेरे डिफ़ॉल्ट में शामिल किया गया है और मैं सत्यापित कर सकता हूं कि उन्हें पृष्ठ पर शामिल किया जा रहा है।रेल jQuery UJS
jQuery(function($) {
$("#deactivate")
.bind("ajax:success", function() {
alert("HELLO");
})
.bind("ajax:error", function() {
alert("GOODBYE");
}
);
});
लिंक:
= link_to 'Deactivate', activate_patient_path(patient), :id => 'deactivate', :class => "button button-red", :remote => true
सक्रिय कार्रवाई:
def activate
patient = Patient.find(params[:id])
patient.do_not_call = !patient.do_not_call
if patient.save
render :nothing => true
else
render :status => 500, :nothing => true
end
end
ajax कॉल काम करने ठीक लग रहा है
यहाँ मेरी जावास्क्रिप्ट है। कार्रवाई ट्रिगर की गई है और मैं डेटाबेस में परिवर्तन देख सकता हूं। हालांकि, AJAX कॉलबैक ट्रिगर नहीं किया जा रहा है। मैं उनमें से कोई भी काम करने के लिए नहीं मिल सकता है। मैं पूरी तरह से काम करने के लिए, क्लिक जैसी अन्य घटनाएं प्राप्त कर सकता हूं।
अगर मैं Firebug में rails_ujs डिबग मुझे लगता है कि निम्नलिखित कोड रेल ajax ब्लॉक से भाग गया हो जाता है:
success: function(data, status, xhr) {
element.trigger('ajax:success', [data, status, xhr]);
}
मैं स्टंप्डया हूँ। कोई विचार?
अगर मैं निष्पादित तत्व = $ ("# को सक्रिय"); element.trigger ('ajax: सफलता'); कंसोल में मैं कॉलबैक गति प्रदान करने के मिल सकता है। किसी कारण से यह यूजेएस के साथ काम नहीं करता है। – anthonator
फ़ायरबग का उपयोग करना, अगर मैं element.trigger ('AJAX: सफलता', [डेटा, स्थिति, xhr]) में rails_ujs में एक ब्रेकपॉइंट डालता हूं और फिर AJAX में $ ("# निष्क्रिय करें") को बांधता हूं: कॉलबैक बंद होने पर सफलता ट्रिगर करेगा। कॉलबैक सही ढंग से ट्रिगर करना जारी रखेगा जब तक कि मैं पृष्ठ को रीफ्रेश नहीं करता तब तक लिंक पर क्लिक करता हूं। ऐसा लगता है कि $ ("# निष्क्रिय") तत्व के समान संदर्भ नहीं है जिस पर ट्रिगर निष्पादित किया जा रहा है। – anthonator