这个论坛上的问题似乎都没有涉及到我的具体需求。基本上,我有一个“详细信息”按钮。 我希望当它被点击时,会出现一个模态对话框,其中包含从模型的show.html.erb中提取的信息。 我有一个book.rb模型。 在索引页面中,我有:
<div class="detail_button"><%= link_to "Details", book %></div>
点击该按钮通常会将我带到书籍/ID页面,使用显示操作。但我不想离开页面,而是想要一个可以关闭的模态弹出窗口。我尝试了此论坛中相关主题的所有jQuery和JavaScript代码,但似乎都无法解决问题。大多数似乎只针对创建或自定义操作。
为避免重复,我尝试了以下内容,但均未奏效:
You could look at modal dialogs by www.jqueryui.com. Add jquery ui to your application.
Put a hidden div (display:none) in your layout page.
<div class="modal" style="display:none;">
</div>
Your link should be an ajax link:
<%= link_to 'Link', events_path(@event), :remote => true %>
Your controller should accept ajax response:
def show
@event = Event.find(params[:id])
respond_to do |format|
format.js
end
end
This is where the magic happens. After pressing the link via ajax, your show.js file will insert content into your empty hidden div and display the popup. Your views should have a javascript file: /view/events/show.js.erb
$('.modal').html(<%= escape_javascript(render(@event)) %>); //inserts content into your empty div.
$('.modal').dialog(); //jquery ui will open it as a modal popup
This:
$('a[data-popup]').live('click', function(e) {
window.open($(this).attr('href'));
e.preventDefault();
});
还有这个:
$('a[data-popup]').live('click', function(e) { window.open($(this).attr('href')); e.preventDefault(); });
= link_to( 'Create a new company', new_company_path, 'data-popup' => true )
有人可以帮忙吗?我对此一窍不通。