event绑定

event绑定在DOM元素上添加指定的事件句柄以便元素被触发的时候执行定义的JavaScript 函数。大部分情况下是用在keypress,mouseover和mouseout上。

简单示例

<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" src="~/Scripts/knockout-2.3.0.debug.js"></script>
<script type="text/javascript">var viewModel = {detailsEnabled: ko.observable(false),enableDetails:function() {this.detailsEnabled(true);},disableDetails:function () {this.detailsEnabled(false);}};ko.applyBindings(viewModel);
</script>

就是通过在一个div上绑定两个事件,一个鼠标点上去的mouseover让下面的div内容显示出来,另一个是鼠标移出mouseout让下面的div内容再隐藏。

你可以声明任何JavaScript函数 – 不一定非要是view model里的函数。你可以声明任意对象上的任何函数,例如: event: { mouseover: someObject.someFunction }。

View model上的函数在用的时候有一点点特殊,就是不需要引用对象的,直接引用函数本身就行了,比如直接写event: { mouseover: enableDetails } 就可以了,而无需写成: event: { mouseover: viewModel.enableDetails }(尽管是合法的)。

submit绑定

submit绑定在form表单上添加指定的事件句柄以便该form被提交的时候执行定义的JavaScript 函数。只能用在表单form元素上。

当你使用submit绑定的时候, Knockout会阻止form表单默认的submit动作。换句话说,浏览器会执行你定义的绑定函数而不会提交这个form表单到服务器上。可以很好地解释这个,使用  submit绑定就是为了处理view model的自定义函数的,而不是再使用普通的HTML form表单。如果你要继续执行默认的HTML form表单操作,你可以在你的submit句柄里返回true。

submit简单示例

<form data-bind="submit: doSomething">    ... form contents go here ...
<input type="text" value="1" id="test"/>
<button type="submit">Submit</button>
</form>

简单的UI元素

        doSomething: function (formElement) {alert(formElement[0].outerHTML);}

简单的viewModel属性

总共有两个元素一个是录入框,另一个是submit提交按钮

在form上,你可以使用click绑定代替submit绑定。不过submit可以handle其它的submit行为,比如在输入框里输入回车的时候可以提交表单。

转载于:https://www.cnblogs.com/zxbzl/p/6004111.html

Knockout.Js官网学习(event绑定、submit绑定)相关推荐

  1. Knockout.Js官网学习(创建自定义绑定)

    前言 你可以创建自己的自定义绑定 – 没有必要非要使用内嵌的绑定(像click,value等).你可以你封装复杂的逻辑或行为,自定义很容易使用和重用的绑定.例如,你可以在form表单里自定义像grid ...

  2. knockout+html绑定,Knockout.Js官网学习(style绑定、attr绑定)

    Style绑定 style绑定是添加或删除一个或多个DOM元素上的style值.比如当数字变成负数时高亮显示,或者根据数字显示对应宽度的Bar.(注:如果你不是应用style值而是应用CSS clas ...

  3. Angular官网学习笔记

    Angular官网学习笔记 一.Angular概述 **什么是Angular:**一个基于TypeScript构建的开发平台包括: 一个基于组件的框架,用于构建可伸缩的Web应用 一组完美集成的库,涵 ...

  4. Spring AOP官网学习

    Spring AOP官网学习 5.1 AOP概念 让我们从定义一些核心的AOP概念和术语开始.这些术语并不是spring特有的.不幸的是,AOP术语不是特别直观. 1.Aspect(方面):跨多个类的 ...

  5. Node.js 官网入门教程(一) CommonJS 模块规范、Node.js REPL、console、CLI、exports

    Node.js 官网入门教程(一) CommonJS 模块规范.Node.js REPL.console.CLI.exports 文章目录 Node.js 官网入门教程(一) CommonJS 模块规 ...

  6. PCL官网学习OpenNI Grabber 调用奥比中光Astra s 遇到问题openni2_grabber.cpp @ 325 : No devices connected.

    PCL官网学习OpenNI Grabber 调用奥比中光Astra s 遇到问题openni2_grabber.cpp @ 325 : No devices connected. 问题描述 termi ...

  7. echarts.js 官网

    echarts.js 官网 http://echarts.baidu.com/ 效果: 代码: updated:function(){this.$nextTick(function () {/**** ...

  8. Node.js 官网入门教程(二) npm(安装、包版本、卸载、npx)、package.json(scripts、devDependencies)package-lock.json(语义版本规则符号

    Node.js 官网入门教程(二) npm(包管理.安装.包版本.卸载.npx).package.json(scripts.devDependencies).package-lock.json(语义版 ...

  9. postgresql 官网学习文档

    pg数据官网学习文档,PostgreSQL: Documentation 中文版:文档目录/Document Index: 世界上功能最强大的开源数据库...

  10. echarts.js官网

    echarts.js 官网 http://echarts.baidu.com/ 效果: 代码: updated:function(){this.$nextTick(function () {/**** ...

最新文章

  1. 微软称使用 Edge 而非 Chrome 能提升电池续航
  2. 一款功能齐全的网管软件:Ip-tools
  3. 事务里面捕获异常_spring 事务回滚
  4. java虚拟机加载类_java虚拟机之类加载机制(一)
  5. php用正则_php 正则表达式匹配(持续更新)
  6. 我的测试和代码分析工具箱
  7. 设计模式之四(抽象工厂模式第二回合)
  8. 如何在网页中加入百度地图
  9. 朱艳梅Java_基于CNKI的大学Java程序设计教学改革文献计量分析
  10. java集合性能测试,关于Map和List的性能测试
  11. 小程序做一个能够左右滑动切换的多tab页面
  12. pycharm + python36 + opencv + opencv_contrib库的安装
  13. 浙江大学公共管理学院与阿里云计算有限公司达成合作 | 凌云时刻
  14. 即时网络通讯系统的设计与实现(QQ)
  15. 视频理解综述:动作识别、时序动作定位、视频Embedding
  16. 新老系统迁移及整合方案
  17. 免费真实增加网站访问量的方法
  18. ORA-00937:不是单组分组函数
  19. 衣服挂牌 挂牌吊牌(麻绳,五彩绳,尼龙绳等)
  20. 【浅析华容道之一】华容道的前世今生

热门文章

  1. 1.7 Linux文件目录查看与编写内容
  2. 优化理论02----凸函数、共轭函数、拟凸函数、对数凹/对数凸函数、关于广义不等关系的凸性
  3. NLP中GLUE数据集下载
  4. fwr171改无线服务器,迅捷(Fast)FWR171无线路由器3G路由模式设置
  5. rk3399_android7.1平台调试sensor流程记录
  6. opencv3.2.0 Cmake 3.8.0 + tdm-gcc-5.1.0-3 OpenThread
  7. android studio release error INSTALL_FAILED_INSUFFICIENT_STORAGE
  8. IOS 判断设备屏幕尺寸、分辨率
  9. 使用Lazy对构造进行重构后比较
  10. java使用Pattern、Matcher调用正则表达式