Knockoutjs 绑定事件

Knockoutjs 不仅支持UI 元素的属性绑定到model的属性,还支持UI 元素的事件绑定model的事件。

需求:

l  click me button 每单击一次,计数器累加一次,并且把计数器次数显示到div中

l  click me button 最大可单击3次,3次过后click me button 不能使用;单击次数达到3次时,显示提示信息,并且显示reset button

l  reset button 单击后click me button 计数器清零,click me button 可用;提示信息与reset

button 消失

代码实现

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<title></title>

<script src="js/knockout-3.3.0.debug.js" type="text/javascript"></script>

</head>

<body>

<form id="form1" runat="server">

<div>You've clicked <span data-bind='text: numberOfClicks'>&nbsp;</span> times</div>

<!--button  click 事件绑定model的onclick方法 -->

<!--button  disable属性绑定hasClickedTooManyTimes属性 -->

<button data-bind='click: onClick, disable: hasClickedTooManyTimes'>Click me</button>

<!--div  visible hasClickedTooManyTimes -->

<div data-bind='visible: hasClickedTooManyTimes'>

That's too many clicks! Please stop before you wear out your fingers.

<!--button  click绑定resetClicks -->

<button data-bind='click: resetClicks'>Reset clicks</button>

</div>

</form>

<script type="text/javascript">

var model = function () {

//计数器

this.numberOfClicks = ko.observable(0);

//onclick方法

this.onClick = function () {

this.numberOfClicks(this.numberOfClicks() + 1);

};

//计数器重置

this.resetClicks = function () {

this.numberOfClicks(0);

};

//hasClickedTooManyTimes 属性

this.hasClickedTooManyTimes = ko.pureComputed(function () {

return this.numberOfClicks() >= 3;

}, this);

};

ko.applyBindings(new model());

</script>

</body>

</html>

运行结果

第一次click

第三次click

重置

转载于:https://www.cnblogs.com/hbb0b0/p/4477124.html

Knockoutjs 实践入门 (2) 绑定事件相关推荐

  1. envi 文件 生成mat_JVM 内存分析工具 MAT 的深度讲解与实践——入门篇

    1. MAT 工具简介 MAT(全名:Memory Analyzer Tool),是一款快速便捷且功能强大丰富的 JVM 堆内存离线分析工具.其通过展现 JVM 异常时所记录的运行时堆转储快照(Hea ...

  2. android如何绑定事件,Android_安卓为按钮控件绑定事件的五种方式

    一.写在最前面 本次,来介绍一下安卓中为控件--Button绑定事件的五种方式. 二.具体的实现 第一种:直接绑定在Button控件上: 步骤1.在Button控件上设置android:onClick ...

  3. 【ROS实践入门(六)消息msg和服务srv文件创建与使用】

    [ROS实践学习入门系列(六)消息msg和服务srv文件创建与使用] 本内容经官网实例以及一些参考书总结而成,欢迎留言评论交流- 联系方式:ziyuanw#foxmail.com(#换成@) 一.创建 ...

  4. Python笔记_64_Vue_M-V-VM思想_显示数据_常用指令_操作属性_绑定事件_操作样式_条件渲染指令_列表渲染指令

    文章目录 Vue vue.js的M-V-VM思想 快速使用 显示数据 常用指令 操作属性 绑定事件 操作样式 条件渲染指令 列表渲染指令 Vue vue.js是目前前端web开发最流行的工具库,由尤雨 ...

  5. 【js】绑定事件的两种方法

    方法一: 为需要绑定事件的标签添加一个属性onclick 代码实现: <input type="button" value="测试按钮" onclick= ...

  6. jQuery绑定事件的三种常见方式(bind、one、【change、click、keydown、hover】)

    一.bind(type,[data],fn):为每个匹配元素的特定事件绑定对应的事件处理函数. 也可以同时给一个元素绑定多个事件,我们来看一下例子: <!DOCTYPE html> < ...

  7. 这就是为什么我们需要在React的类组件中绑定事件处理程序

    by Saurabh Misra 索拉·米斯拉(Saurabh Misra) 这就是为什么我们需要在React的类组件中绑定事件处理程序 (This is why we need to bind ev ...

  8. jq父级绑定事件的意义_jq——事件

    $(document),$(body) 加载事件: $(document).ready(fn) $(document).ready(function(){ alert("这是加载事件&quo ...

  9. js绑定事件和解绑事件

    在js中绑定多个事件用到的是两个方法:attachEvent和addEventListener,但是这两个方法又存在差异性 attachEvent方法  只支持IE678,不兼容其他浏览器 addEv ...

最新文章

  1. swift3.0三种反向传值
  2. 解决placeholder兼容性问题
  3. maven、gradle依赖分析
  4. github authentication设置里,fallback SMS number国家选项里没有中国的问题
  5. 恐怖与暴力美学 + 妖魔化:《人皮客栈》观看笔记
  6. 容器编排技术 -- Kubernetes kubectl create service loadbalancer 命令详解
  7. 最小公倍数与最大公约数的研究
  8. 互联网+医疗考验无线部署 飞塔SAA同频部署模式巧妙化解
  9. 移动端中 H5输入框在弹起键盘后被遮挡
  10. php颜色十六进制代码,如何通过PHP中的十六进制代码检索颜色的人名
  11. python小脚本获取抖音直播源的demo
  12. NOR Flash与NAND Flash区别
  13. java项目-基于SSM实现在线考试及题库管理系统
  14. 数据仓库系列之总线架构
  15. Simulink永磁同步电机控制仿真系列七:使用脉振高频注入法的位置估计
  16. selectpicker.js的属性和方法
  17. 增量式编码器c语言,关于增量式编码器编程指导及使用方法的介绍
  18. 微信 dat 文件还原
  19. 以太坊签名,验证签名, EIP712domain Permit授权并转账
  20. PHP中文版配置信息

热门文章

  1. 在unity2d同屏显示9千人
  2. 《West Game》入围收入Tpo30的背后,SLG游戏新机会在哪?
  3. Xbox 2021年科隆展发表会将于8月25日凌晨1点开始
  4. Java开发手册——嵩山版(清幽现云山,虚静出内功)
  5. ubuntu搭建【python】运行环境
  6. 零基础学Python(第二章 中文编码)
  7. Oracle 11g新特性:Result Cache
  8. ORACLE TEXT FILTER PREFERENCE(一)
  9. pl sql developer中如何调试存储过程以及调试包中创建的存储过程
  10. 七天开发安卓软件(五)