Rails远程link_to并访问javascript响应中的触发器元素

时间:2011-12-16 17:14:12

标签: ruby-on-rails jquery

在我的Rails3应用程序中,我有包含行的表,每个包含linkig以及:remote =>真

...
<tr><td><%= link_to "remote call", action_controller_path(data), :remote => true %>
...

作为对ajax调用的响应,我返回javascript以在浏览器中执行:

# action.js.erb
console.log(this); <-- "this" is browser's window object not my element
$(this).closest("tr")....

问题是,在我的javascript中我需要访问元素,它触发了ajax调用(<a>标记)。有什么方法可以访问它吗?

1 个答案:

答案 0 :(得分:0)

我找到了类似问题的答案here


  

我的解决方案是在我的情况下将预提交类绑定到元素   一个弹出模式窗口。这是与帖子链接的类似解决方案   以上是因为它使用预提交绑定,但是可以使用   而是改为。

     

在public / javascripts / application.rb中:

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

然后在我看来弹出内容(例如   应用程序/视图/为MyModel / popup.js.erb):

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

如果这看起来不是犹太人,我会全力以赴,但它现在有效。