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实现动态生成表格并为行绑定单击变色动作的方法
Apr 17 jQuery
详解如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件
Jun 01 jQuery
基于jQuery Ajax实现下拉框无刷新联动
Dec 06 jQuery
jQuery解析json格式数据示例
Sep 01 jQuery
js/jquery遍历对象和数组的方法分析【forEach,map与each方法】
Feb 27 jQuery
JavaScript前端页面搜索功能案例【基于jQuery】
Jul 10 jQuery
jquery实现下载图片功能
Jul 18 jQuery
Jquery让form表单异步提交代码实现
Nov 14 jQuery
JQuery实现折叠式菜单的详细代码
Jun 03 jQuery
jquery实现简单拖拽效果
Jul 20 jQuery
JQuery通过键盘控制键盘按下与松开触发事件
Aug 07 jQuery
jQuery实现广告显示和隐藏动画
Jul 04 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
最贵的咖啡是怎么产生的,它的风味怎么样?
2021/03/04 新手入门
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
2014/06/23 PHP
PHP实现懒加载的方法
2015/03/07 PHP
thinkPHP自定义类实现方法详解
2016/11/30 PHP
javascript 处理HTML元素必须避免使用的一种方法
2009/07/30 Javascript
JS URL传中文参数引发的乱码问题
2009/09/02 Javascript
IE6中使用position导致页面变形的解决方案(js代码)
2011/01/09 Javascript
js当一个变量为函数时 应该注意的一点细节小结
2011/12/29 Javascript
一样的table?不一样的table(可编辑状态table)
2012/09/19 Javascript
使用js操作cookie的一点小收获分享
2013/09/03 Javascript
javascript间隔刷新的简单实例
2013/11/14 Javascript
javascript中通过arguments参数伪装方法重载
2014/10/08 Javascript
jQuery插件datalist实现很好看的input下拉列表
2015/07/14 Javascript
JavaScript 七大技巧(二)
2015/12/13 Javascript
jQuery获取父元素节点、子元素节点及兄弟元素节点的方法
2016/04/14 Javascript
简单实现IONIC购物车功能
2017/01/10 Javascript
Vue生命周期示例详解
2017/04/12 Javascript
js捆绑TypeScript声明文件的方法教程
2018/04/13 Javascript
详解在React项目中安装并使用Less(用法总结)
2019/03/18 Javascript
layui之数据表格--与后台交互获取数据的方法
2019/09/29 Javascript
Vuex实现购物车小功能
2020/08/17 Javascript
vue-router路由懒加载及实现的3种方式
2021/02/28 Vue.js
python基础教程之基本内置数据类型介绍
2014/02/20 Python
Django Admin实现三级联动的示例代码(省市区)
2018/06/22 Python
用python解压分析jar包实例
2020/01/16 Python
python修改linux中文件(文件夹)的权限属性操作
2020/03/05 Python
Python如何将函数值赋给变量
2020/04/28 Python
python3将变量输入的简单实例
2020/08/19 Python
python用tkinter实现一个简易能进行随机点名的界面
2020/09/27 Python
Python命令行参数定义及需要注意的地方
2020/11/30 Python
python3处理word文档实例分析
2020/12/01 Python
Gap英国官网:Gap UK
2018/07/18 全球购物
ANINE BING官方网站:奢华的衣橱基本款和时尚永恒的单品
2019/11/26 全球购物
给护士表扬信
2014/01/19 职场文书
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
2021/10/16 Python
virtualenv隔离Python环境的问题解析
2022/06/21 Python