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+ThinkPHP+Ajax实现即时消息提醒功能实例代码
Mar 21 jQuery
jQuery实现在HTML文档加载完毕后自动执行某个事件的方法
May 08 jQuery
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
Nov 14 jQuery
jQuery实现的滑块滑动导航效果示例
Jun 04 jQuery
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
Aug 28 jQuery
jquery的$().each和$.each的区别
Jan 18 jQuery
js/jquery遍历对象和数组的方法分析【forEach,map与each方法】
Feb 27 jQuery
javascript(基于jQuery)实现鼠标获取选中的文字示例【测试可用】
Oct 26 jQuery
JQuery发送ajax请求时中文乱码问题解决
Nov 14 jQuery
jQuery 选择方法及$(this)用法实例分析
May 19 jQuery
jQuery实现移动端下拉展现新的内容回弹动画
Jun 24 jQuery
jQuery class属性操作addClass()与removeClass()、hasClass()、toggleClass()
Mar 31 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+MYSQL会员系统的登陆即权限判断实现代码
2011/09/23 PHP
Yii中render和renderPartial的区别
2014/09/03 PHP
thinkphp连贯操作实例分析
2014/11/22 PHP
Yii框架在页面输出执行sql语句以方便调试的实现方法
2014/12/24 PHP
PHP异常处理浅析
2015/05/12 PHP
yii2分页之实现跳转到具体某页的实例代码
2016/06/02 PHP
PHP的mysqli_stmt_init()函数讲解
2019/01/24 PHP
PHP实现本地图片转base64格式并上传
2020/05/29 PHP
jquery实现的一个导航滚动效果具体代码
2013/05/27 Javascript
使用jQuery jqPlot插件绘制柱状图
2014/12/18 Javascript
jQuery实现DIV层收缩展开的方法
2015/02/27 Javascript
JavaScrip调试技巧之断点调试
2015/10/22 Javascript
JS匿名函数实例分析
2016/11/26 Javascript
AngularJS 防止页面闪烁的方法
2017/03/09 Javascript
JavaScript变速动画函数封装添加任意多个属性
2019/04/03 Javascript
微信小程序实现签字功能
2019/12/23 Javascript
[11:42]2018DOTA2国际邀请赛寻真——OG卷土重来
2018/08/17 DOTA
Python可变参数函数用法实例
2015/07/07 Python
Python脚本实现自动将数据库备份到 Dropbox
2017/02/06 Python
python生成tensorflow输入输出的图像格式的方法
2018/02/12 Python
python实现俄罗斯方块游戏
2020/03/25 Python
详解Django的model查询操作与查询性能优化
2018/10/16 Python
对python中词典的values值的修改或新增KEY详解
2019/01/20 Python
对Django项目中的ORM映射与模糊查询的使用详解
2019/07/18 Python
简单了解django orm中介模型
2019/07/30 Python
python 实用工具状态机transitions
2020/11/21 Python
浅谈css3中calc在less编译时被计算的解决办法
2017/12/04 HTML / CSS
比利时的在线灯具店:Lampen24.be
2019/07/01 全球购物
第一范式(1NF)、第二范式(2NF)和第三范式(3NF)之间的区别是什么?
2016/04/28 面试题
诚信承诺书范文
2014/03/27 职场文书
机械工程师岗位职责
2014/06/16 职场文书
2015年预算员工作总结
2015/05/14 职场文书
股东协议书范本2016
2016/03/21 职场文书
2019年“我为祖国点赞”演讲稿(3篇)
2019/09/26 职场文书
Mysql数据库表中为什么有索引却没有提高查询速度
2022/02/24 MySQL
Nginx反向代理、重定向
2022/04/13 Servers