2012-12-19 13 views
6

Raylardaki yakutta 2 parçayı güncellemeye çalışıyorum.Mesaja sahip olan yanıtıyla ilgili kısmi etkinlik var çalışmıyor

show.html.erb:

<div id="filters"><%= render :partial => "pricelistfilters" %></div> 

pricelistfilters.html.erb:

<% @properties.each do |prop| %> 
    #Render the page on properties (and the newproperties) 
    #<select ...><option>...</option><option>...</option> 
    #</select> 
<% end %> 

products.js - hale kısmi

için> etkinlik
$(window).ready(function(){ 
    selectionchanges(); 
}); 
function selectionchanges(){ 
    $('#filters select').change(function(){ 
    //Doing stuff to send with ajax 

    //Ajax: 
    $.ajax({ 
     url: document.URL, 
     type: 'POST', 
     data: params 
    }); 
    }); 
} 

products_controller.rb - değişikliklerini işlemek için> kod

def show 
    #Changing the properties (and the pricelist properties) 
    @properties #is filled 
    @newproperties #is filled 
    respond_to do |format| 
    format.html 
    format.js 
    end 
end 

show.js.erb yapılan

$('#filters').html('<%= escape_javascript(render :partial => "pricelistfilters") %>'); 
selectionChanges(); 

My render öğe mükemmel iyidir. Ancak, işlenen öğeyle uygun yanıt aldığımda, artık ajax'ı göndermiyor. Bu yüzden seçtiğim öğelerdeki etkinlik gitmişken, onları "selectionchanges();" ile sıfırladığımdan eminim. show.js.erb dosyasının sonunda?

Bu konuda bir çözüm görülebilir mi? peşin

Tebrik ve teşekkür

+0

Kod blokları garip davranıyordu: Bana yardım ettiğin için teşekkürler! – ReBa

+0

Rica ederim. Umarım sorunun için iyi bir cevap bulursun. – jdl

+3

'selectionchanges' ve 'selectionChanges' var, bir yazım hatası mı? – RadBrad

cevap

2

olarak feryat, product.js jQuery canlı işlevini kullanarak deneyin: Temelde

$(window).ready(function(){ 
    selectionchanges(); 
}); 
function selectionchanges(){ 
    $('#filters select').live('change', function(){ 
    //Doing stuff to send with ajax 

    //Ajax: 
    $.ajax({ 
     url: document.URL, 
     type: 'POST', 
     data: params 
    }); 
    }); 
} 

, ilk bağlanmış HTML Dom'un elemanı yenileyeceğiz etkinlik 'değiştir' için. Canlı ile, öğeyi değiştirerek bile, jQuery sizin için bağlayıcıyı yeniden yapar.

Umut eder!

+0

Buna bakmalıyız. Mükemmel çalışıyor! Teşekkürler dostum. – ReBa

İlgili konular