ruby on rails 3 - remote - ¿Dónde se definen los eventos de JavaScript personalizados de Rails 3?
rails ujs ajax (1)
Al mirar a través del código jquery-ujs de Rails 3, observo que se enlaza con los eventos personalizados de JavaScript (submit.rails, click.rails, etc.). ¿Alguien sabe dónde se definen estos eventos ''.rails'' personalizados? Solo trato de entender mejor cómo funcionan las cosas de UJS en Rails 3 para poder usarlas de manera más efectiva ...
Estos son eventos con espacios de nombre . No hay definición para ellos; click.rails
es lo mismo que click
, pero debido a que tiene espacios de nombre con rails
, puede desatar o desencadenar los controladores de eventos específicos de Rails sin invocar todos los eventos de click
en un elemento.
Por ejemplo, supongamos que tiene algún elemento, <div class=''foo'' data-remote=''true''>
, y enlaces rails.js
$("*[data-remote=''true'']").bind("click.rails", function() { ... })
En tu código, también tienes:
$(".foo").click(function() { ... });
Ahora, Rails puede querer invocar ese controlador remoto en algún momento, pero si solo llama a $(this).click()
, entonces invocará a todos los controladores de clic en el elemento, incluido el personalizado, que puede producir un comportamiento no deseado. En su lugar, puede llamar a $(this).trigger(''click.rails'')
, y solo se ejecutará el controlador de clic que definió.