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插件FusionCharts实现的Marimekko图效果示例【附demo源码】
Mar 24 jQuery
基于jQuery封装的分页组件
Jun 26 jQuery
快速掌握jquery分页插件jqPaginator的使用方法
Aug 09 jQuery
简单实现jQuery手风琴效果
Aug 18 jQuery
Mui使用jquery并且使用点击跳转新窗口的实例
Aug 19 jQuery
JS+jQuery实现注册信息的验证功能
Sep 26 jQuery
Django中使用jquery的ajax进行数据交互的实例代码
Oct 15 jQuery
简单实现jQuery弹窗效果
Oct 30 jQuery
jQuery实现的点击标题文字切换字体效果示例【测试可用】
Apr 26 jQuery
JQuery的加载和选择器用法简单示例
May 13 jQuery
jQuery子选择器与可见性选择器实例分析
Jun 28 jQuery
jQuery实现带进度条的轮播图
Sep 13 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 $_SERVER[&quot;REQUEST_URI&quot;]获取值的通用解决方法
2010/06/21 PHP
php下mysql数据库操作类(改自discuz)
2010/07/03 PHP
php生成缩略图示例代码分享(使用gd库实现)
2014/01/20 PHP
详解PHP5.6.30与Apache2.4.x配置
2017/06/02 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
JS解密入门 最终变量劫持
2008/06/25 Javascript
Javascript控制页面链接在新窗口打开具体方法
2013/08/16 Javascript
jQuery .tmpl() 用法示例介绍
2014/08/21 Javascript
jQuery中insertAfter()方法用法实例
2015/01/08 Javascript
jquery表单验证需要做些什么
2015/11/17 Javascript
js绘制购物车抛物线动画
2020/11/18 Javascript
详谈jQuery中的一些正则匹配表达式
2017/03/08 Javascript
详解angularJs指令的3种绑定策略
2017/04/13 Javascript
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
2017/08/16 Javascript
vue.js 打包时出现空白页和路径错误问题及解决方法
2019/06/26 Javascript
Node.js系列之安装配置与基本使用(1)
2019/08/30 Javascript
简单的抓取淘宝图片的Python爬虫
2014/12/25 Python
python简单实现基数排序算法
2015/05/16 Python
sublime python3 输入换行不结束的方法
2018/04/19 Python
解决pycharm安装后代码区不能编辑的问题
2018/10/28 Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
2018/12/18 Python
Django 内置权限扩展案例详解
2019/03/04 Python
python元组的概念知识点
2019/11/19 Python
Pycharm github配置实现过程图解
2020/10/13 Python
Canvas绘制浮动球效果的示例
2017/12/29 HTML / CSS
华润集团网上药店:健一网
2016/09/19 全球购物
白宫黑市官网:White House Black Market
2016/11/17 全球购物
英国时尚运动品牌的合集:The Sports Edit
2017/12/20 全球购物
德国旅行、体验和活动的预订平台:Watado
2019/12/04 全球购物
面向对象概念面试题(.NET)
2016/11/04 面试题
物流专业大学生职业生涯规划书范文
2014/01/15 职场文书
厂办主管岗位职责范本
2014/02/28 职场文书
村党支部公开承诺书
2014/05/29 职场文书
经营场所使用证明
2015/06/19 职场文书
2015年乡镇组织委员工作总结
2015/10/23 职场文书
一文弄懂MySQL索引创建原则
2022/02/28 MySQL