ajax'i tetiklemeye çalışıyorum: uzak bağlantı için başarı geri dönüşü. Rails 3.0.8 ve jquery-ray 1.0.11 üzerindeyim. Javascriptleri kurmak için jQuery jeneratörü çalıştırdım. Hem jquery hem de jquery_ujs varsayılanlarıma dahil edildi ve sayfaya dahil olduklarını doğrulayabilirim.Raylar jQuery UJS geri aramaları tetiklemiyor
jQuery(function($) {
$("#deactivate")
.bind("ajax:success", function() {
alert("HELLO");
})
.bind("ajax:error", function() {
alert("GOODBYE");
}
);
});
: link:
= link_to 'Deactivate', activate_patient_path(patient), :id => 'deactivate', :class => "button button-red", :remote => true
etkinleştirme işlemi:
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 çağrısı iyi çalışıyor gibi görünüyor
İşte benim javascript var. Eylem tetikleniyor ve veritabanındaki değişiklikleri görebiliyorum. Bununla birlikte, ajax geri çağrıları tetiklenmemektedir. Onların hiçbirini işe alamıyorum. Mükemmel çalışma için tıklama gibi diğer etkinlikleri alabilirim. Ben Firebug rails_ujs debug
aşağıdaki kod Raylar ajax bloktan ran alır görüyoruz:
success: function(data, status, xhr) {
element.trigger('ajax:success', [data, status, xhr]);
}
stumped. Herhangi bir fikir?
Çalışırsam öğesi = $ ("# activate"); element.trigger ('ajax: başarı'); Konsolda Geri çağırma işlemini tetikleyebiliyorum. Bazı nedenlerden dolayı UJS ile çalışmıyor. – anthonator
Rails_ujs öğesinde element.trigger ('ajax: başarı', [veri, durum, xhr]) satırında bir kesme noktası koyup ardından ajax'e $ ("# deactivate") bağladığımda Firebug'u kullanarak: geri arama durdurulduğunda başarı tetikleyecek. Sayfayı yenileyene kadar bağlantıyı tıklattığımda geri arama doğru şekilde tetiklemeye devam edecektir. Görünüşe göre, $ ("# deactivate"), tetikleyicinin üzerine çalıştırıldığı öğeyle aynı referans değildir. – anthonator