Rails - элемент доступа AJAX в обратном вызове - PullRequest
0 голосов
/ 24 января 2011

У меня есть представление, скажем, show.js.erb.И у меня есть ссылка в другом представлении, так что

link_to "MyLink", my_object_path, :remote => true

успешно возвращает представление show.js.erb.Мой вопрос, с этой точки зрения, есть ли способ получить доступ к элементу, который вызвал вызов AJAX, не прибегая к генерации идентификатора, специфичного для отдельных элементов, а ...использовать этот обратный вызов представления, чтобы открыть небольшое диалоговое окно рядом с любым элементом, по которому щелкнули, но я не могу найти способ доступа к инициирующему элементу.не работает.

Я хотел бы сделать что-то вроде

$(this).after("some new html here");

1 Ответ

3 голосов
/ 28 января 2011

Мое решение состояло в том, чтобы связать класс предварительной отправки с элементом, в моем случае это всплывающее модальное окно. Это аналогичное решению для поста, на который ссылается выше, в котором используются привязки перед отправкой, но вместо этого он предназначен для использования классов.

В public / javascripts / application.rb:

jQuery(function($) { 
  $(".poppable").bind("ajax:loading", function() { $(this).addClass("popped"); });
});

Тогда, на мой взгляд, для всплывающего контента (например, app / views / mymodel / popup.js.erb):

var p = $(".poppable.popped");
p.removeClass("popped");
/* Do what I need to with p ... */

Если это не выглядит кошерно, у меня все уши, но пока это работает.

...