在bootstrap javaScript部分中,许多事件都支持事件emitter,例如显示的模式显示。
这使得实现需要在事件处理程序中执行不同行为的情况。
以下是一个示例:有 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
});
});
你们如何看待这个?Bootstrap是否有任何理由避免回调模式?这种东西可以是合适的功能请求吗?
初始化模态外部,然后根据需要绑定到事件。
$("#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自定义事件。如果没有,您可以将回调添加到触发事件的模态。然后,您的按钮只需收听按需收听。