2011-06-20 17 views
6

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?

+1

Ç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

+0

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

cevap

12

jquery.js'yi rails.js'den sonra tekrar eklemediğinizden emin olun ... jquery.js'nin iki kez eklendiği benzer bir soruna rastladım ve rails.js arasında yer aldı.

+1

Bu kadardı. jQuery Tools, jQuery'nin eski bir sürümünü gömüyordu. – anthonator

İlgili konular