时间:2021-05-26
目的
event绑定即为事件绑定,即当触发相关DOM事件的时候回调函数。例如keypress,mouseover或者mouseout等
例如:
Mouse over me
源码:
<div><div data-bind="event: { mouseover: enableDetails, mouseout: disableDetails }">Mouse over me</div><div data-bind="visible: detailsEnabled">Details</div></div><script type="text/javascript">var viewModel = {detailsEnabled: ko.observable(false),enableDetails: function() {this.detailsEnabled(true);},disableDetails: function() {this.detailsEnabled(false);}};ko.applyBindings(viewModel);</script>如上述例子,当鼠标指针移入或者移出Mouse over me时,对于detailsEnabled的值设定true或者false。进而控制Details的显示和隐藏。
和click一样,event后边所跟的格式一般为:event { mouseover: someObject.someFunction },其中的回调函数并不一定非要是视图模型的函数,他可以时任何对象的函数。
备注1:传递一个当前项目作为参数
London
Paris
Tokyo
You seem to be interested in:
源码:
<ul data-bind="foreach: places"><li data-bind="text: $data, event: { mouseover: $parent.logMouseOver }"> </li></ul><p>You seem to be interested in: <span data-bind="text: lastInterest"> </span></p><script type="text/javascript">function MyViewModel() {var self = this;self.lastInterest = ko.observable();self.places = ko.observableArray(['London', 'Paris', 'Tokyo']);// The current item will be passed as the first parameter, so we know which place was hovered overself.logMouseOver = function(place) {self.lastInterest(place);}}ko.applyBindings(new MyViewModel());</script>需要注意,如果你使用的是嵌套绑定上下文,比如foreach或者with,而需要处理的回调函数在视图模型中或者在父模型中,需要使用$parent或者$root前缀来进行绑定
与click绑定一样,给this取个别名比较好。
备注2:传递多个参数
此处请参考click绑定:
<div data-bind="event: { mouseover: myFunction }">Mouse over me</div><script type="text/javascript">var viewModel = {myFunction: function(data, event) {if (event.shiftKey) {//do something different when user has shift key down} else {//do normal action}}};ko.applyBindings(viewModel);</script>封装多参数示例:
<div data-bind="event: { mouseover: function(data, event) { myFunction('param1', 'param2', data, event) } }">Mouse over me</div>使用bind函数示例:
<button data-bind="event: { mouseover: myFunction.bind($data, 'param1', 'param2') }">Click me</button>备注3:允许默认动作
同click绑定一样,ko禁止默认动作,比如你将event的keypress事件绑定到一个Input元素上,那这个input元素输入的值将会被keypress回调占用而无法输入任何信息。解决方案很简单,就是在回调函数中返回true即可。
备注4:防止冒泡事件
如果要防止冒泡事件,可以直接在事件绑定后附加一个youreventBubble绑定。将该附加绑定设置为false则禁止冒泡事件的发生,例如:
<div data-bind="event: { mouseover: myDivHandler }"><button data-bind="event: { mouseover: myButtonHandler }, mouseoverBubble: false">Click me</button></div>备注5:Jquery互动
以上所述是小编给大家介绍的KnockoutJS 3.X API 第四章之事件event绑定,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
第四章XML语法提纲:一.XML语法规则二.元素的语法三.注释的语法四.CDATA的语法五.Namespaces的语法六.entity的语法七.DTD的语法通过
《外贸来函电》这门课程有十一章自内容,包括:bai第一章商务信函的格式、du第二章商务信函的写作原则、第三章建立dao业务关系、第四章询盘、第五章报盘、第六章C
各位抖音达人注意,抖音内容电商禁售类目规范调整了,其中第三章违规处理及附则有变化,具体的变化看下面。变更1变化前:变化后:变更2变化前:变化后:第四章附则第十一
1、前言工作中涉及到文件系统,有时候需要判断文件和目录是否存在。我结合APUE第四章文件和目录,总结一下如何正确判断文件和目录是否存在,方便以后查询。2、sta
各位亲爱的会员:闲置商品交易较为特殊,其交易纠纷的处理也存在特殊性,此次将在《淘宝争议处理规则》“第四章特殊交易争议处理规范”中新增关于闲鱼(闲置)市场的争议处