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.validate.js 多个相同name的处理方式
Jul 10 jQuery
jQuery常用选择器详解
Jul 17 jQuery
jQuery实现可编辑表格并生成json结果(实例代码)
Jul 19 jQuery
jquery在vue脚手架中的使用方式示例
Aug 29 jQuery
jquery radio 动态控制选中失效问题的解决方法
Feb 28 jQuery
jQuery实现DIV响应鼠标滑过由下向上展开效果示例【测试可用】
Apr 26 jQuery
详解jQuery-each()方法
Mar 13 jQuery
jQuery Raty星级评分插件使用方法实例分析
Nov 25 jQuery
viewer.js一个强大的基于jQuery的图像查看插件(支持旋转、缩放)
Apr 01 jQuery
jQuery实现高度灵活的表单验证功能示例【无UI】
Apr 30 jQuery
jQuery加PHP实现图片上传并提交的示例代码
Jul 16 jQuery
jquery实现拖拽添加元素功能
Dec 01 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获取网页上所有链接的方法
2015/04/03 PHP
浅谈PHP中其他类型转化为Bool类型
2016/03/28 PHP
PHP全局变量与超级全局变量区别分析
2016/04/01 PHP
Zend Framework常用校验器详解
2016/12/09 PHP
php实现微信企业转账功能
2018/10/02 PHP
javascript:void(0)使用探讨
2013/08/27 Javascript
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
jQuery删除节点的三个方法即remove()detach()和empty()
2013/12/27 Javascript
jquery中attr和prop的区别分析
2015/03/16 Javascript
跟我学习javascript的循环
2015/11/18 Javascript
JS 日期与时间戮相互转化的简单实例
2016/06/22 Javascript
jquery对象和DOM对象的相互转换详解
2016/10/18 Javascript
鼠标点击input,显示瞬间的边框颜色,对之修改与隐藏实例
2016/12/26 Javascript
Bootstrap导航中表单简单实现代码
2017/03/06 Javascript
JavaScript实现类似淘宝的购物车效果
2017/03/16 Javascript
浅谈angular4实际项目搭建总结
2017/12/01 Javascript
vue-router beforeEach跳转路由验证用户登录状态
2018/12/26 Javascript
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
用js限制网页只在微信浏览器中打开(或者只能手机端访问)
2020/12/24 Javascript
详解Django中的权限和组以及消息
2015/07/23 Python
Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法
2016/04/12 Python
Python进阶:生成器 懒人版本的迭代器详解
2019/06/29 Python
Python跳出多重循环的方法示例
2019/07/03 Python
python通过matplotlib生成复合饼图
2020/02/06 Python
keras实现VGG16方式(预测一张图片)
2020/07/07 Python
关于Python字符编码与二进制不得不说的一些事
2020/10/04 Python
HTML5 层的叠加的实现
2020/07/07 HTML / CSS
阿联酋电子产品购物网站:Menakart
2017/09/15 全球购物
自我介绍演讲稿
2014/01/15 职场文书
教师校本培训方案
2014/02/26 职场文书
小学班干部竞选演讲稿
2014/04/24 职场文书
2014年小学美术工作总结
2014/12/20 职场文书
2016年“5.12”护士节致辞
2015/07/31 职场文书
四年级作文之植物
2019/09/20 职场文书
浅谈Go语言多态的实现与interface使用
2021/06/16 Golang
Django Paginator分页器的使用示例
2021/06/23 Python