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 13 jQuery
jquery.guide.js新版上线操作向导镂空提示jQuery插件(推荐)
May 20 jQuery
jQuery实现下拉菜单的实例代码
Jun 19 jQuery
jQuery实现火车票买票城市选择切换功能
Sep 15 jQuery
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
Sep 20 jQuery
使用jQuery实现两个div中按钮互换位置的实例代码
Sep 21 jQuery
jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法
Dec 24 jQuery
jQuery实现的简单日历组件定义与用法示例
Dec 24 jQuery
jQuery+vue.js实现的多选下拉列表功能示例
Jan 15 jQuery
jquery UI实现autocomplete在获取焦点时得到显示列表功能示例
Jun 04 jQuery
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
Nov 07 jQuery
基于ajax及jQuery实现局部刷新过程解析
Sep 12 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
文件上传类
2006/10/09 PHP
献给php初学者(入门学习经验谈)
2010/10/12 PHP
php生成excel列序号代码实例
2013/12/24 PHP
Laravel5.1 框架控制器基础用法实例分析
2020/01/04 PHP
HTML TO JavaScript 转换
2006/06/26 Javascript
javascript获取当前日期时间及其它操作函数
2011/01/11 Javascript
JS原型对象通俗&quot;唱法&quot;
2012/12/27 Javascript
jquery获取table中的某行全部td的内容方法
2013/03/08 Javascript
用js实现小球的自由移动代码
2013/04/22 Javascript
使用jQuery异步加载 JavaScript脚本解决方案
2014/04/20 Javascript
asp.net+js实现金额格式化
2015/02/27 Javascript
基于jQuery的Web上传插件Uploadify使用示例
2016/05/19 Javascript
网站申请不到支付宝接口、微信接口,免接口收款实现方式几种解决办法
2016/12/14 Javascript
jQuery EasyUI Draggable拖动组件
2017/03/01 Javascript
React Native自定义控件底部抽屉菜单的示例
2018/02/08 Javascript
element ui table(表格)实现点击一行展开功能
2018/12/04 Javascript
小程序getLocation需要在app.json中声明permission字段
2019/04/04 Javascript
ajax跨域访问遇到的问题及解决方案
2019/05/23 Javascript
利用JS响应式修改vue实现页面的input值
2019/09/02 Javascript
layui的布局和表格的渲染以及动态生成表格的方法
2019/09/18 Javascript
用Nodejs实现在终端中炒股的实现
2020/10/18 NodeJs
Python实现改变与矩形橡胶的线条的颜色代码示例
2018/01/05 Python
十分钟利用Python制作属于你自己的个性logo
2018/05/07 Python
Python实现基于C/S架构的聊天室功能详解
2018/07/07 Python
python的scikit-learn将特征转成one-hot特征的方法
2018/07/10 Python
python去除删除数据中\u0000\u0001等unicode字符串的代码
2020/03/06 Python
Python异常原理及异常捕捉实现过程解析
2020/03/25 Python
pytorch 查看cuda 版本方式
2020/06/23 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
2020/08/24 Python
css3实现六边形边框的实例代码
2019/05/24 HTML / CSS
美国美发品牌:Bumble and Bumble
2016/10/08 全球购物
澳大利亚排名第一的在线酒类商店:MyBottleShop
2018/04/26 全球购物
旅游市场营销方案
2014/03/09 职场文书
单位承诺书格式
2014/05/21 职场文书
体育系毕业生自荐信
2014/06/28 职场文书
http通过StreamingHttpResponse完成连续的数据传输长链接方式
2022/02/12 Python