如果点击了链接,我想渲染一个弹出窗口。
我有两个操作回家并在页面控制器内测试: -
在pages / home.html.erb视图中,如果我这样做
<div id="myModal" class= "reveal-modal">
<h1> Modal Window</h1>
<p> I am inside a modal</p>
</div>
<div>
<%=link_to "Modal", test_url,:class=> "buttonForModal"%>
</div>
和pages.js文件
$(document).ready(function() {
$('.buttonForModal').click(function(e) {
e.preventDefault();
$('#myModal').reveal();
});
});
这很好用,给我一个很好的弹出窗口。
但是,如果我放置
<div id="myModal" class= "reveal-modal">
<h1> Modal Window</h1>
<p> I am inside a modal</p>
</div>
在pages / test.html.erb视图中,在page / home.html.erb
中<div>
<%=link_to "Modal", test_url,:class=> "buttonForModal"%>
</div>
我没有得到任何弹出窗口,也没有呈现任何内容,可能是什么问题?我是否需要明确提及控制器和操作名称?
我正在测试上面的代码,以便我可以将设计登录放在弹出窗口中,但同样的问题也是如此。
答案 0 :(得分:1)
显示模式弹出窗口是通过javascript完成的。 javascript在浏览器中执行。您显示的javascript代码实际上希望模式存在于HTML中。
因此,您需要做的是在视图中呈现您想要的视图作为弹出窗口。
至于你的例子,在pages/show.html.erb
你应该写:
<div>
<%=link_to "Modal", test_url,:class=> "buttonForModal" %>
</div>
= render :partial => 'pages/test'
在文件pages/_test.html.erb
内(请注意额外的下划线!),你可以放置模态视图。
希望这有帮助。
答案 1 :(得分:0)
“#myModal”必须与“.buttonForModal”和javascript ...在同一页面上...
现在似乎“#myModal”与“.buttonForModal”不在同一页面上,这意味着当点击按钮时,jquery无法找到“#myModal”div ...