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实现下拉菜单的实例代码
Jun 19 jQuery
jquery实现下拉菜单的手风琴效果
Jul 23 jQuery
jQuery条件分页 代替离线查询(附代码)
Aug 17 jQuery
jquery 获取索引值在一定范围的列表方法
Jan 25 jQuery
详解jQuery中的isPlainObject()使用方法
Feb 27 jQuery
jQuery实现模糊查询的方法分析
May 10 jQuery
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
Oct 26 jQuery
jQuery实现的自定义轮播图功能详解
Dec 28 jQuery
jQuery动态生成的元素绑定事件操作实例分析
May 04 jQuery
jQuery实现的图片点击放大缩小功能案例
Jan 02 jQuery
jquery实现简单拖拽效果
Jul 20 jQuery
jquery插件实现代码雨特效
Apr 24 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
PHP4在Windows2000下的安装
2006/10/09 PHP
使用apache模块rewrite_module (转)
2007/02/14 PHP
PHP基础陷阱题(变量赋值)
2012/09/12 PHP
php IP转换整形(ip2long)的详解
2013/06/06 PHP
php curl请求信息和返回信息设置代码实例
2015/04/27 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
PHP基于SPL实现的迭代器模式示例
2018/04/22 PHP
PHP中上传文件打印错误错误类型分析
2019/04/14 PHP
PHP扩展类型及安装方式解析
2020/04/27 PHP
ExtJS 2.2.1的grid控件在ie6中的显示问题
2009/05/04 Javascript
jQuery之排序组件的深入解析
2013/06/19 Javascript
javascript中直接写php代码的方法
2013/07/31 Javascript
JAVASCRIPT函数作用域和提前声明 分享
2013/08/22 Javascript
node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用
2014/11/04 Javascript
javascript结合fileReader 实现上传图片
2015/01/30 Javascript
JQuery标签页效果的两个实例讲解(4)
2015/09/17 Javascript
jQuery 常用代码集锦(必看篇)
2016/05/16 Javascript
Javascript生成带参数的二维码示例
2016/10/10 Javascript
使用openSpeDiv方法实现Ecshop登录弹窗框效果
2017/03/13 Javascript
jQuery实现QQ空间汉字转拼音功能示例
2017/07/10 jQuery
Javascript网页抢红包外挂实现分享
2018/01/11 Javascript
对angularJs中2种自定义服务的实例讲解
2018/09/30 Javascript
原生js实现公告滚动效果
2021/01/10 Javascript
使用Vue实现移动端左滑删除效果附源码
2019/05/16 Javascript
微信小程序swiper实现文字纵向轮播提示效果
2020/01/21 Javascript
[01:21]2018DOTA2亚洲邀请赛4.5采访 打DOTA2也能有女朋友?
2018/04/06 DOTA
python遍历文件夹找出文件夹后缀为py的文件方法
2018/10/21 Python
Django-Rest-Framework 权限管理源码浅析(小结)
2018/11/12 Python
Python测试模块doctest使用解析
2019/08/10 Python
python更新数据库中某个字段的数据(方法详解)
2020/11/18 Python
绝对令人的惊叹的CSS3折叠效果(3D效果)整理
2012/12/30 HTML / CSS
德国古洛迷亚百货官网:GALERIA Kaufhof
2017/06/20 全球购物
2014年干部作风建设总结
2014/10/23 职场文书
离婚起诉状范本
2015/05/19 职场文书
写给同事的离职感言
2015/08/04 职场文书
详解Golang如何实现支持随机删除元素的堆
2022/09/23 Python