繁体   English   中英

自举模式传递数据

[英]Bootstrap modal passing data

我正在使用Bootstrap2.3.2,

function showmodal(arg1){$('#myModal').modal({keyboard:true,backdrop:'static'});
$('#myModal').on('hidden',function(){
    alert(arg1);
});}

function function1 {showmodal("one");}

function function2 {showmodal("two");}

当我调用function1() ,模态将打开并关闭,该模态“一个”警报消息将到来。 在我要调用function2() ,模态将被打开并关闭,该模态“一个”即将成为第一个警报,“两个”即将成为第二个警报。 问题是两个警报都将出现在function2中。我需要在第二个函数调用中删除第一个警报。

您可以将函数参数另存为元素中的数据。

然后,您需要移出事件侦听器,或者将多个事件绑定到同一模式:

function showmodal(arg1) {
  $('#myModal').data('arg', arg1).modal({
    keyboard:true,
    backdrop:'static'
  });
}

$('#myModal').on('hidden',function(){
  alert($(this).data('arg'));
});

function function1 {showmodal("one");}

function function2 {showmodal("two");}

或者,在绑定新的事件监听器之前先解除其绑定:

function showmodal(arg1){$('#myModal').modal({keyboard:true,backdrop:'static'});
$('#myModal').off('hidden').on('hidden',function(){
    alert(arg1);
});}

jQuery有一个名为整齐的功能one允许绑定的事件处理程序,这将至多每事件元素被调用一次:

function showmodal(arg1) {
    $('#myModal').modal({keyboard:true,backdrop:'static'});
    $('#myModal').one('hidden', function () {
        alert(arg1);
    });
}

我已经重新格式化了代码,但是相对于原始问题中的代码,上述代码中唯一的功能更改是用对one的调用代替了对on的调用。 通过使用one ,不需要解除绑定事件处理程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM