我有一个带有对象列表的索引页面(@contacts),我需要能够使用ajax编辑弹出窗口中的每个@contact条目。对象清单:
<% @contacts.each do |contact| %>
<div><%= contact.name %> | <%= link_to 'Edit', edit_contact_path(contact), :id => "edit_contact_dialog_link_#{contact.id}" %></div>
<% @contact = contact %><%= render :template => "contacts/edit" %>
<% end %>
这里我要为所有编辑链接添加唯一ID。在edit.html.erb
中做得很好:
<div id="edit_contact_dialog_<%= @contact.id %>">
<h1>Editing contact</h1>
<%= render 'form' %>
</div>
现在,在索引页面上,我有一个联系人列表(包含唯一的编辑链接edit_contact_dialog_link_ID
)和编辑表单(包含唯一的div ID edit_contact_dialog_ID
)
我需要隐藏所有edit_contact_dialog_ID
框,并在每个edit_contact_dialog_link_ID
点击打开相应的对话窗口,但不知道如何。
我的contacts.js
:
$("#edit_contact_dialog_(here i need a regexp or smthng?)").dialog({
autoOpen: false,
width: 455,
modal: true
});
$("#edit_contact_dialog_link_???").click(function(){
$("#edit_contact_dialog_???").dialog("open");
return false;
});
感谢您的帮助。
答案 0 :(得分:3)
使用class属性
$(".dialog").dialog({
autoOpen: false,
width: 455,
modal: true
});
$(".edit_handler").click(function(){
var id = $(this).attr('id');
$("#edit_contact_dialog_" + id).dialog("open");
return false;
});