Twitter bootstrap 如果点击背景,Twitter引导模式Bindinghandler将被击倒
我尝试在单击以下按钮时禁用背景关闭模式:Twitter bootstrap 如果点击背景,Twitter引导模式Bindinghandler将被击倒,twitter-bootstrap,knockout.js,Twitter Bootstrap,Knockout.js,我尝试在单击以下按钮时禁用背景关闭模式: ko.bindingHandlers.showModal = { init: function (element, valueAccessor) { }, update: function (element, valueAccessor) { var value = valueAccessor(); if (ko.utils.unwrapObservable(value)) {
ko.bindingHandlers.showModal = {
init: function (element, valueAccessor) {
},
update: function (element, valueAccessor) {
var value = valueAccessor();
if (ko.utils.unwrapObservable(value)) {
$(element).modal({ backdrop: 'static', keyboard: true });
// this is to focus input field inside dialog
$("input", element).focus();
}
else {
$(element).modal('hide');
}
}
};
据我所知,$(element).modal({background:'static',keyboard:true})代码>应该达到我的目标。但是如果我点击背景,模态仍然会关闭,事实上会破坏“显示”按钮。我做错了什么
Fiddle:您的问题是您试图多次初始化模式
设置background:“static”
的初始化逻辑应该进入init
函数(只调用一次),您需要在update
函数中调用.modal('show')
和.modal('hide')
:
ko.bindingHandlers.showModal = {
init: function (element, valueAccessor) {
$(element).modal({ backdrop: 'static', keyboard: true, show: false });
},
update: function (element, valueAccessor) {
var value = valueAccessor();
if (ko.utils.unwrapObservable(value)) {
$(element).modal('show');
$("input", element).focus();
}
else {
$(element).modal('hide');
}
}
};
演示