【发布时间】:2015-02-14 21:46:49
【问题描述】:
我需要在按钮上显示动态 Bootstrap 工具提示,说明该按钮被禁用的原因(即“填写您的姓名/地址/电话”或某些变体)。我正在为项目使用 Bootstrap/jQuery/KnockoutJS。
我在禁用按钮上显示引导工具提示时遇到问题,通过谷歌搜索发现这是由于没有触发底层按钮事件(由于按钮被禁用,引导工具提示不起作用. 哦!)。
我正在使用带有点击绑定的 KnockoutJS 来处理按钮事件。
问题:有谁知道在启用按钮并且包含特定CSS类(即btn-disabled ) - 这样不会调用 KnockoutJS 点击事件,但工具提示仍然显示?
无效代码示例:
请注意,使用enable:false data-bind 属性,工具提示将不会显示。我试图通过样式/事件处理重新创建行为,但并没有真正禁用控件:
HTML:
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap-theme.min.css">
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
<script src="http://knockoutjs.com/downloads/knockout-3.2.0.js"></script>
...
<button id="testButton"
class="btn btn-default"
data-bind="click: clickTest, enable:false"
data-toggle="tooltip"
data-placement="left"
data-original-title="Test tool tip">
Test Button
</button>
脚本:
<script type="text/javascript">
function TestViewModel() {
var self = this;
self.clickTest = function () {
console.debug("Test button has been clicked");
};
}
var testViewModel = new TestViewModel();
$(document).ready(function () {
$('#testButton').tooltip();
console.debug("document ready");
ko.applyBindings(testViewModel);
});
</script>
【问题讨论】:
-
您正在寻找类似的东西jsfiddle.net/supercool/LkqTU/21274
-
不完全是,它必须是 bootstrap 3 工具提示:getbootstrap.com/javascript/#tooltips
-
我可以找个小提琴来测试你的问题吗
-
哎呀,当我在内联发布代码时,我看到了你的小提琴评论;)
-
我们可能需要编写一些技巧,因为我们在这里使用引导程序作为工具提示,实际上禁用这些事件不会触发(如上所述)。纯 html 在这种情况下没有问题。
标签: jquery css twitter-bootstrap knockout.js