我正在使用 Rails3 和 jQuery 并尝试执行简单的 ajax 调用。我有一个显示应用程序当前状态(在线/离线)的链接。单击后,它将更新状态。
link_to app.status, { :controller => :apps, :action => :live_status, :id => app }, {:remote => true, :class => "#{app.status} status"}
live_status.js.erb:
$(this).fadeOut();
$(this).parent().html("<%= escape_javascript(status_link(@wowza_app)) %>");
$(this).fadeIn();
status_link 将返回更新后的 link_to
然而 $(this) 并没有按照我的设想工作。如何用新状态更新点击状态?
您应该为要更新的元素提供一个 ID(我在最后向哈希添加了一个元素):
link_to app.status, { :controller => :apps, :action => :live_status, :id => app }, {:remote => true, :class => "#{app.status} status", :id => app.id}
现在,您可以使用相同的标识符通过 jQuery 选择正确的元素:
$("#<%= @wowza_app.id %>").fadeOut();
$("#<%= @wowza_app.id %>").parent().html("<%= escape_javascript(status_link(@wowza_app)) %>");
$("#<%= @wowza_app.id %>").fadeIn();
当然,这假设@wowza_app
有一个方法叫做id
返回相同的链接 ID,但您可以根据需要修改变量以选择具有正确 ID 的元素。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)