0

我正在尝试从实际打开的模式视图中打开一个新的引导模式视图。

我正在使用以下模板打开所有不同的模式:

<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>

实际上,当我在这样的模式中按下一个按钮时,什么也没有发生。

4

1 回答 1

3

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

其次,当您绑定事件时,它只使用页面上已有的元素,除非您使用委托事件,例如:

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

});

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

从那里开始,它应该可以工作:Demo (jsfiddle)

于 2013-02-10T11:00:31.333 回答