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 06 jQuery
浅谈struts1 &amp; jquery form 文件异步上传
May 25 jQuery
jquery网页加载进度条的实现
Jun 01 jQuery
JQueryMiniUI按照时间进行查询的实现方法
Jun 07 jQuery
jquery实现楼层滚动效果
Jan 01 jQuery
jQuery实现碰到边缘反弹的动画效果
Feb 24 jQuery
jQuery中复合选择器简单用法示例
Mar 31 jQuery
jQuery实现表单动态添加数据并提交的方法
Jul 19 jQuery
jQuery 操作 HTML 元素和属性的方法
Nov 12 jQuery
JQuery Ajax执行跨域请求数据的解决方案
Dec 10 jQuery
jQuery实现的简单歌词滚动功能示例
Jan 07 jQuery
Jquery高级应用Deferred对象原理及使用实例
May 28 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程序的方法
2009/03/09 PHP
一个PHP的String类代码
2010/04/20 PHP
PHP易混淆知识整理笔记
2015/09/24 PHP
微信封装的调用微信签名包的类库
2017/06/08 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
Laravel实现通过blade模板引擎渲染视图
2019/10/25 PHP
JavaScript 基于原型的对象(创建、调用)
2009/10/16 Javascript
javascript 静态对象和构造函数的使用和公私问题
2010/03/02 Javascript
基于jquery的3d效果实现代码
2011/03/23 Javascript
js的表单操作 简单计算器
2011/12/29 Javascript
JS左右无缝滚动(一般方法+面向对象方法)
2012/08/17 Javascript
学习js在线html(富文本,所见即所得)编辑器
2012/12/18 Javascript
jQuery实现个性翻牌效果导航菜单的方法
2015/03/09 Javascript
JQuery跳出each循环的方法
2015/04/16 Javascript
jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码
2016/12/27 Javascript
js时间戳格式化成日期格式的多种方法介绍
2017/02/16 Javascript
基于JQuery和原生JavaScript实现网页定位导航特效
2017/04/03 jQuery
vue.js层叠轮播效果的实例代码
2018/11/08 Javascript
详解vue引入子组件方法
2019/02/12 Javascript
vue实现点击隐藏与显示实例分享
2019/02/13 Javascript
微信小程序select下拉框实现源码
2019/11/08 Javascript
最全vue的vue-amap使用高德地图插件画多边形范围的示例代码
2020/07/17 Javascript
[15:41]教你分分钟做大人——灰烬之灵
2015/03/11 DOTA
Python程序设计入门(1)基本语法简介
2014/06/13 Python
详细解读Python中解析XML数据的方法
2015/10/15 Python
python range()函数取反序遍历sequence的方法
2018/06/25 Python
python队列原理及实现方法示例
2019/11/27 Python
Django Model层F,Q对象和聚合函数原理解析
2020/11/12 Python
Python实例教程之检索输出月份日历表
2020/12/16 Python
极简的HTML5模版
2015/07/09 HTML / CSS
玩具反斗城美国官网:Toys"R"Us
2016/09/17 全球购物
哈曼俄罗斯官方网上商店:Harman.club
2020/07/24 全球购物
英国奢侈品在线精品店:Hervia
2020/09/03 全球购物
《充气雨衣》教学反思
2014/04/07 职场文书
2014年班干部工作总结
2014/11/25 职场文书
个人委托函范文
2015/01/29 职场文书