twitter bootstrap模态对话框

时间:2012-10-30 18:35:34

标签: jquery twitter-bootstrap modal-dialog

我的Twitter Bootstrap模式对话框有问题 HTML代码:

<div class="container">
    <div class="delete_dosar">delete</div>
</div>

<!-- Boostrap modal dialog -->
<div id="delete_confirmation" class="modal hide fade" style="display: none; ">
    <div class="modal-header">
        <a href="#" class="close" data-dismiss="modal">x</a>
        <h3>Are you sure?</h3>
    </div>
    <div class="modal-body">
        <div class="paddingT15 paddingB15" id="modal_text">    
        Are you sure with this?
        </div>
    </div>
    <div class="modal-footer">
        <a href="#" class="btn confirm_delete_the_item no_return">yes</a>
        <a href="#" class="btn btn-secondary " data-dismiss="modal">no</a>
    </div>
</div>​

JS代码:

$(function() {
$(".delete_dosar").live('click',function(){

    $('#delete_confirmation').modal("show");
    $('.confirm_delete_the_item').live('click',function(e){
        $('#delete_confirmation').modal("hide");
        //e.preventDefault();
        alert('x');
    });

    return false;
});
});​

代码在这里运行:http://jsfiddle.net/darkwish02/u7hEv/

如果我点击“删除”和“是”,我第一次只有一个提醒,但如果我再次点击“删除”(没有刷新),我将收到2个提醒。

事件“点击”似乎连续2次运行。

2 个答案:

答案 0 :(得分:7)

你正在做的事情,每次点击删除按钮时都会附加一个新的点击处理程序。

您应该将内部点击处理程序插入移出第一个。然后,“是”按钮总会只有一个处理程序。

这个小提琴表明它有效:http://jsfiddle.net/KSxJs/

$(function() {

    $('.confirm_delete_the_item').live('click', function(e) {
        $('#delete_confirmation').modal("hide");
        //e.preventDefault();
        alert('x');


    });


    /** SETERGERE DE DOSAR DIN PARTEA STANGA **/
    $(".delete_dosar").live('click', function() {

        $('#delete_confirmation').modal("show");

        return false;

    });
});​

答案 1 :(得分:2)

我建议您使用bootbox或bootstrap-dialog来执行此操作。

请参阅:

http://bootboxjs.com/

http://github.com/nakupanda/bootstrap3-dialog