如何做一个onmouseover文本绑定
How to do an onmouseover text binding?
当鼠标悬停在元素上时,如何将文本绑定到元素上?
Javascript到目前为止:
self.books = ko.observable();
self.leftBooks = self.books() - self.allBooks();
相应的视图:
<button data-bind="text: books"></button>
当鼠标悬停在按钮上时,我想显示leftBooks
变量。当鼠标悬停离开时,我想显示books
变量
给你:
http://jsfiddle.net/Ukv59/5/我做了什么:
- 为你的'leftBooks'创建一个计算观察对象
- 为按钮标题 创建一个计算观察对象
- 添加了一些字段,以便您可以测试它是否实际工作
self.allBooks = ko.observable(50);
self.books = ko.observable(10);
self.leftBooks = ko.computed(function () {
return self.allBooks() - self.books();
});
self.showLeftBooks = ko.observable(false);
self.buttonText = ko.computed(function () {
return self.showLeftBooks() ? self.leftBooks() : self.books();
});
self.mouseOver = function () {
self.showLeftBooks(true);
}
self.mouseOut = function () {
self.showLeftBooks(false);
}
编辑:亚历山大对他的答案的更新做了几乎相同的事情,但少了一个属性。在我看来,你是否希望引入额外的可观察的"showLeftBooks"是一个品味问题。我觉得它使代码的意图更清楚一些,但是如果您愿意,可以完全省略它。
使用event
绑定:
<button data-bind="text: booksTitle, event: {mouseover: mouseOver, mouseout: mouseOut}"></button>
JS:
function ViewModel() {
var self = this;
self.books = ko.observable(10);
self.allBooks = ko.observable(100);
self.leftBooks = self.books() - self.allBooks();
self.booksTitle = ko.observable(10);
self.mouseOver = function () {
self.booksTitle(self.leftBooks);
}
self.mouseOut = function () {
self.booksTitle(self.books());
}
}
演示相关文章:
- 使用敲除绑定多个文本数据
- 在文本框上绑定谷歌地点自动完成,而无需实例化谷歌地图
- 将包含 javascript 的文本绑定到模板中的 innerHTML
- 将 d3 演示中的圆圈和文本替换为包含自定义 HTML 和 ko 绑定的 foreignObject
- 将按钮绑定到几个基于文本框中值的大小而激活的文本框
- 如何使用文本下拉列表中的绑定值来执行计算
- 如何连接文本绑定中使用的可观察量的值
- KnockoutJS,文本与值绑定.为什么文本绑定不绑定到输入字段
- 使用挖空将选项文本绑定到具有对象数组的属性
- 挖空 要在单个标记中显示的文本绑定
- 在单击按钮之前,不会显示已编译的文本绑定
- Kendo MVVM 使用换行符将文本绑定到文本区域
- 数组的文本绑定元素
- 删除文本绑定不能用于输入
- 在knockout中扩展文本绑定
- js文本绑定客户端更改不更新视图模型
- 如何在Angularjs中将文本绑定为DOM对象
- 将文本绑定到子对象的属性
- 删除显示值的文本绑定
- 如何做一个onmouseover文本绑定