从模态打开bootstrap模态

时间:2013-02-09 11:18:47

标签: twitter-bootstrap modal-dialog

我试图从实际打开的模态视图中打开一个新的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">&nbsp;</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>

实际上,当我按下像那样的模态中的按钮时,没有任何反应。

1 个答案:

答案 0 :(得分:3)

首先,当您使用自己的模态加载时,不应使用data-toggle="modal"属性,因为远程页面将被加载两次(由您和插件加载)。

其次,绑定事件时,它只使用页面上已有的元素,除非您使用delegated events之类的:

$(document).on('click','a[data-target="#myModal"]', function(ev) {

});

请注意选择器周围的简单引号'和属性值周围的双引号"

从那里开始,它应该有效:Demo (jsfiddle)