2010-11-24 12 views

Respuesta

17

estoy teniendo el mismo problema, y ​​me ayudó figura this post fuera. Básicamente, debe conectar un oyente al elemento que reacciona a los eventos de devolución de llamada de los raíles. Por ejemplo:

<%= link_to 'Delete', post, 
    :confirm => 'Are you sure?', 
    :method => :delete, 
    :remote=>true, 
    :id=>'delete' %> 

En un archivo js separado (para que sea discreta), con jQuery:

$('#delete').bind('ajax:success', function() { 
    // do something 
}); 
+0

Gracias a morbaq, también lo encontré después de buscar en Google. Pero pensé que podría haber algunos rieles. – Pravin

+1

Rails 3 se ha alejado de los ayudantes "inline javascript" como link_to_remote y se mueve hacia JavaScript discreto (UJS), que debe manejar de esa manera. AFAIK, el código anterior es, de hecho, el "camino de los rieles" desde la versión 3. –

0

En caso de que también desea añadir detector de ajax uso Envía siguiente código

$(document).ready(function() { 
    $('#topnav-buildings').bind('ajax:beforeSend', function() { 
    blockDiv('#topnav-buildings'); 
    }); 
}); 

pasé una hora para encontrar estas cosas t2

  1. tenemos que ponerlo dentro document.ready
  2. S es en mayúsculas al escribir ajax: beforeSend
  3. no uso ajaxSend en lugar de Ajax: beforeSend .... pd añade manejador global para todos los eventos ajax
1

Enlazando una función a ajax: el éxito como sugirió Morbaq funcionó para mí.

Sin embargo, creo que si hay más de un comportamiento de ajax asociado con el elemento, la función se ejecutará para cada uno de ellos.

Cuestiones relacionadas