jQuery实现html双向绑定功能示例


Posted in jQuery onOctober 09, 2017

本文实例讲述了jQuery实现html双向绑定功能。分享给大家供大家参考,具体如下:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="jquery-1.9.1.js"></script>
<script>
var user = new User('123');
$(function(){
user.set( "name", "99" );
});
 function GetData() {
  alert(user.attributes.name);
 }
function DataBinder( object_id ) {
 var pubSub = jQuery({});
 var data_attr = "bind-" + object_id,
   message = object_id + ":change";
 jQuery( document ).on( "change", "[data-" + data_attr + "]", function( evt ) {
  var $input = jQuery( this );
  pubSub.trigger( message, [ $input.data( data_attr ), $input.val() ] );
 });
 pubSub.on( message, function( evt, prop_name, new_val ) {
  jQuery( "[data-" + data_attr + "=" + prop_name + "]" ).each( function() {
   var $bound = jQuery( this );
   if ( $bound.is("input, textarea, select") ) {
    $bound.val( new_val );
   } else {
    $bound.html( new_val );
   }
  });
 });
 return pubSub;
}
function User( uid ) {
 var binder = new DataBinder( uid ),
   user = {
    attributes: {},
    set: function( attr_name, val ) {
     this.attributes[ attr_name ] = val;
     binder.trigger( uid + ":change", [ attr_name, val, this ] );
    },
    get: function( attr_name ) {
     return this.attributes[ attr_name ];
    },
    _binder: binder
   };
 binder.on( uid + ":change", function( evt, attr_name, new_val, initiator ) {
  if ( initiator !== user ) {
   user.set( attr_name, new_val );
  }
 });
  return user;
 }
</script>
</head>
<body>
<input type="text" data-bind-123="name" /><br/>
<input type="button" onclick="GetData();" value="获取数据"></div>
</body>
</html>

希望本文所述对大家jQuery程序设计有所帮助。

jQuery 相关文章推荐
jQuery实现简单的滑动导航代码(移动端)
May 22 jQuery
jQuery实现一个简单的验证码功能
Jun 26 jQuery
使用 jQuery 实现表单验证功能
Jul 05 jQuery
jQuery判断网页是否已经滚动到浏览器底部的实现方法
Oct 27 jQuery
基于jQuery的$.getScript方法去加载javaScript文档解析
Nov 08 jQuery
判断jQuery是否加载完成,没完成继续判断的解决方法
Dec 06 jQuery
jQuery+koa2实现简单的Ajax请求的示例
Mar 06 jQuery
jQuery实现模糊查询的方法分析
May 10 jQuery
jQuery-ui插件sortable实现自由拖动排序
Dec 01 jQuery
jQuery实现弹出层效果
Dec 10 jQuery
JQuery事件冒泡和默认行为代码实例
May 13 jQuery
jquery实现鼠标悬浮弹出气泡提示框
Dec 23 jQuery
jqueryUI tab标签页代码分享
Oct 09 #jQuery
jQuery ajax调用webservice注意事项
Oct 08 #jQuery
jQuery完成表单验证的实例代码(纯代码)
Sep 30 #jQuery
jquery之基本选择器practice(实例讲解)
Sep 30 #jQuery
jquery鼠标悬停导航下划线滑出效果
Sep 29 #jQuery
jQuery选择器之子元素过滤选择器
Sep 28 #jQuery
jQuery选择器之属性过滤选择器详解
Sep 28 #jQuery
You might like
如何写php程序?
2006/12/08 PHP
PHP中执行MYSQL事务解决数据写入不完整等情况
2014/01/07 PHP
juqery 学习之五 文档处理 包裹、替换、删除、复制
2011/02/11 Javascript
解析window.open的使用方法总结
2013/06/19 Javascript
jquery基础教程之数组使用详解
2014/03/10 Javascript
JavaScript中对象属性的添加和删除示例
2014/05/12 Javascript
js简单的点击返回顶部效果实现方法
2015/04/10 Javascript
JQuery节点元素属性操作方法
2015/06/11 Javascript
jQuery使用animate创建动画用法实例
2015/08/07 Javascript
JavaScript实现将文本框的值插入指定位置的方法
2015/08/13 Javascript
浅析jQuery中使用$所引发的问题
2016/05/29 Javascript
详细解读Jquery各Ajax函数($.get(),$.post(),$.ajax(),$.getJSON())
2016/08/15 Javascript
AngularJS的ng Http Request与response格式转换方法
2016/11/07 Javascript
Node.js+Express+MySql实现用户登录注册功能
2017/07/10 Javascript
React 组件间的通信示例
2018/06/14 Javascript
node.js 模块和其下载资源的镜像设置的方法
2018/09/06 Javascript
vue+VeeValidate 校验范围实例详解(部分校验,全部校验)
2018/10/19 Javascript
微信小程序官方动态自定义底部tabBar的例子
2019/09/04 Javascript
[02:44]DOTA2英雄基础教程 克林克兹
2014/01/15 DOTA
[45:18]2018DOTA2亚洲邀请赛 4.3 突围赛 Optic vs iG 第一场
2018/04/04 DOTA
[53:50]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Python基于高斯消元法计算线性方程组示例
2018/01/17 Python
Python高级特性 切片 迭代解析
2019/08/23 Python
Daniel Wellington官方海外旗舰店:丹尼尔惠灵顿DW手表
2018/02/22 全球购物
Ibatis如何使用动态表名
2015/07/12 面试题
Hibernate持久层技术
2013/12/16 面试题
新娘父亲婚礼致辞
2014/01/16 职场文书
青年志愿者先进事迹
2014/05/06 职场文书
典型事迹材料范文
2014/12/29 职场文书
软件项目经理岗位职责
2015/04/01 职场文书
机关单位保密工作责任书
2015/05/11 职场文书
法人代表证明书范本
2015/06/18 职场文书
医院病假条范文
2015/08/17 职场文书
Python基础知识之变量的详解
2021/04/14 Python
Java实战之用Swing实现通讯录管理系统
2021/06/13 Java/Android
避坑之 JavaScript 中的toFixed()和正则表达式
2022/04/19 Javascript