我试图从实际打开的模态视图中打开一个新的bootstrap模态视图。
我使用以下模板打开所有不同的模态:
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel"> </h3>
</div>
<div class="modal-body">
<div class="alert alert-error" style="text-align: center;">
<strong>ERROR!</strong><br />You should not be able to see this text!^
</div>
</div>
</div>
<script>
$("a[data-target=#myModal]").click(function(ev) {
ev.preventDefault();
var target = $(this).attr("href");
// load the url and show modal on success
$("#myModal .modal-body").load(target, function() {
$("#myModal").modal("show");
});
});
</script>
然后我用RoR调用我的模态:
<a href='<%= url_for :controller => :customers, :action => :new %>' data-target='#myModal' type='button' class='btn' role='button' data-toggle='modal'>
<i class="icon-plus"></i> new Customer</a>
实际上,当我按下像那样的模态中的按钮时,没有任何反应。
答案 0 :(得分:3)
首先,当您使用自己的模态加载时,不应使用data-toggle="modal"
属性,因为远程页面将被加载两次(由您和插件加载)。
其次,绑定事件时,它只使用页面上已有的元素,除非您使用delegated events之类的:
$(document).on('click','a[data-target="#myModal"]', function(ev) {
});
请注意选择器周围的简单引号'
和属性值周围的双引号"
。
从那里开始,它应该有效:Demo (jsfiddle)