【问题标题】:Modal dialog to confirm delete确认删除的模态对话框
【发布时间】:2015-03-01 09:24:45
【问题描述】:

我正在关注这个 (Bootstrap modal to confirm table row delete) 但我不知道为什么,但模式对话框没有出现。

我希望基本上做同样的事情,虽然我的表是由我的 jQuery 代码动态创建的:

$("#guests_table > tbody:last").append(
    "<tr class='btnDelete' data-id='" + guest.guest_id + "'>"
    + "<td>" + guest.guest_first_name + "</td>"
    + "<td>" + guest.guest_last_name + "</td>"
    + "<td>" + guest.guest_email + "</td>"
    + "<td>" + "<a href='editguest.html?guestId=" + guest.guest_id + "&hostId=" + hostId + "&registryId=" + guest.registry_id + " '>"
    + "<img src='images/edit26.png' height='60%' width='60%'></a></td>"
    + "<td><button class='btnDelete' href=''>delete</button></td>"
    + "</tr>");
});

在 HTML 页面的头部:

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>

模态对话框:

<!-- start: Delete Coupon Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog"
    aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal"
                    aria-hidden="true">&times;</button>
                <h3 class="modal-title" id="myModalLabel">Warning!</h3>

            </div>
            <div class="modal-body">
                <h4>Are you sure you want to DELETE?</h4>

            </div>
            <!--/modal-body-collapse -->
            <div class="modal-footer">
                <button type="button" class="btn btn-danger" id="btnDelteYes" href="#">Yes</button>
                <button type="button" class="btn btn-default" data-dismiss="modal">No</button>
            </div>
            <!--/modal-footer-collapse -->
        </div>
        <!-- /.modal-content -->
    </div>
    <!-- /.modal-dialog -->
</div>
<!-- /.modal -->

JS页面中的按钮调用:

$('btn.btnDelete').on('click', function (e) {
    e.preventDefault();
    var id = $(this).closest('tr').data('id');
    $('#myModal').data('id', id).modal('show');
});

$('#btnDelteYes').click(function () {
    var id = $('#myModal').data('id');
    $('[data-id=' + id + ']').remove();
    $('#myModal').modal('hide');
});

在删除时,我有一个 API 调用来删除,但我只是在努力让对话框甚至出现。知道为什么吗?

谢谢

【问题讨论】:

  • 在哪里绑定点击事件以显示模式对话框?
  • 抱歉,不小心漏掉了。编辑主帖
  • 确保$('btn.btnDelete').on('click' 代码在$("#guests_table &gt; tbody:last").append( 代码之后。
  • 它仍然没有出现...不太清楚为什么
  • 我已将 JSfiddle 中的代码复制到一个新的 HTML 页面上,并将 JavaScript 放入一个新的 JS 文件中,以排除任何导致它无法工作的情况,但它根本不显示,所以可能是我……

标签: javascript jquery twitter-bootstrap modal-dialog


【解决方案1】:

绑定删除按钮单击事件时 CSS 选择器的问题。应该是.btn.btnDelete,注意前面.或者它。

$('.btn.btnDelete').on('click', function (e) {
    e.preventDefault();
    var id = $(this).closest('tr').data('id');
    $('#myModal').data('id', id).modal('show');
});

还要确保删除按钮具有 btn 类以使其正常工作:

<button class='btn btnDelete' href=''>delete</button>
<!--    add btn ^ class    -->

演示: http://plnkr.co/edit/X2hybmfUXGlFlaoFX4Al?p=preview

【讨论】:

  • plunker 演示工作,但如果我将 JS 代码移动到 script.js 文件,则什么都没有出现
  • 打开控制台,检查错误。将我的演示与您的代码进行比较,有些不同。
  • 你的 script.js 文件应该在调用 jquery.min.js 之后编写
  • 我有你的演示在一个单独的脚本文件中工作:jsfiddle.net/4f915wow/2 但无法让它与我一起工作。奇怪的是,只要我把 JS 代码放在另一个文件中并引用它,它就不起作用了
  • 我没有将按钮事件直接放在 append() 函数之后,一旦意识到这一点,我就移动了它。现在可以了。谢谢你:)
猜你喜欢
  • 2012-02-17
  • 2014-02-16
  • 2017-12-20
  • 2017-09-07
  • 1970-01-01
  • 1970-01-01
  • 2011-06-08
  • 2016-02-06
  • 1970-01-01
相关资源
最近更新 更多