我的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次运行。
答案 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来执行此操作。
请参阅: