引导程序是否只支持事件发送而不是回调模式?

时间:2014-01-23 18:48:37

标签: javascript jquery twitter-bootstrap callback event-handling

Bootstrap javascript部分,很多内容都支持事件发射器,例如显示模式的 shown.bs.modal

但这会使实现需要在事件处理程序中执行不同行为的情况变得很痒。

以下是一些示例:有一个 myModal ,两个按钮 myBtn1 myBtn2 可以触发要显示的模态。当模式由 myBtn1 显示时,应该发出警报。

有许多可能的解决方案:

但这应该是这样的:

$("#myBtn1").click(function(e){
    $("#myModal").modal({
        show: true,
        onShown: function(e){
            alert("myModal shown by myBtn1");
        }
    });
});
$("#myBtn2").click(function(e){
    $("#myModal").modal({
        show: true
    });
});

你们怎么想这个?引导程序是否有任何理由避免回调模式?请问这种事情是否适合要求?

1 个答案:

答案 0 :(得分:0)

在外部初始化模态,然后根据需要绑定到事件。

$("#myModal").modal({
    show: true
});

$("#myBtn1").click(function(e){
    $("#myModal").one('shown', function(){
        alert("myModal shown by myBtn1");
    }).modal("show");
});
$("#myBtn2").click(function(e){
    $("#myModal").modal("show");
});

这假设显示模态生成正常的jquery自定义事件。如果没有,您可以向触发事件的模态添加回调。然后,你的按钮只是按需收听。