美文网首页
用jquery实现数据双向绑定

用jquery实现数据双向绑定

作者: 动次动次forever | 来源:发表于2016-11-16 16:16 被阅读0次

javascript code

  function DataBinder (objectId) {
    // 使用jQuery空对象作为监听对象
    var pubSub = jQuery({});
    //
    var dataAttr = 'bind-' + objectId;
    var message = objectId + ':change';
    // 监听dom中所有元素的 data-binding 属性变化。并由pubSub来处理。
    $(document).on('input change', '[data-' + dataAttr + ']', function (event) {
        var $ele = $(this);
        console.log('$ele', $ele);
        pubSub.trigger(message, [$ele.data(dataAttr), $ele.val()]);
    });
    // pubSub把数据变化推送给所有与之绑定的页面元素
    pubSub.on(message, function (event, proName, newValue) {
        $('[data-' + dataAttr + '=' + proName + ']').each(function () {
            var $ele = $(this);
            if($ele.is('input, textarea, select')) {
                $ele.val(newValue);
            } else {
                $ele.html(newValue);
            }
        })
    });
    return pubSub;
}
function User(uid) {
    var binder = new DataBinder(uid);
    var user = {
        attributes: {},
        set: function (attrName, val) {
            this.attributes[attrName] = val;
            binder.trigger(uid + ':change', [attrName, val, this]);
        },
        get: function (attrName) {
            return this.attributes[attrName];
        },
        _binder: binder
    }
    return user;
}

调用的时候,用uid与之关联。

javascript code

var user = new User('user');
    $('#btnSet').bind('click', function (event) {
 user.set('name', 'Liuyuan211');

该例子中,uid就是 data-bind-user="name" 中的 user ,绑定的页面元素会自动与user对应的属性关联。

相关文章

  • 用jquery实现数据双向绑定

    javascript code 调用的时候,用uid与之关联。 javascript code 该例子中,uid就...

  • Vue框架基础

    原生js与Vue框架的区别 用原生实现双向数据绑定 用Vue实现双向数据绑定 Vue是一个javaScript框架...

  • jquery实现双向数据绑定

    用过vue都知道它是双向数据绑定,有没有想它的实现原理? 下来我们就用jquery试试 下面是完整代码 看看效果,...

  • vue 双向数据绑定

    Vue实现数据双向绑定的原理:Object.defineProperty()vue实现数据双向绑定主要是:采用数据...

  • Vue实现数据双向绑定的原理

    Vue实现数据双向绑定的原理:Object.defineProperty() vue实现数据双向绑定主要是:采用数...

  • (33)Vue购物车

    用v-model来双向绑定input控制checkbox是否选中 Vue中双向数据绑定是如何实现的 positio...

  • 深入Vue响应式原理

    1.Vue的双向数据绑定 参考 vue的双向绑定原理及实现Vue双向绑定的实现原理Object.definepro...

  • 美团面试总结

    1.angularJS双向绑定实现2.双向绑定的其他实现3.使用get,set实现双向数据绑定4.三列布局实现的三...

  • 【转】JavaScript的观察者模式(Vue双向绑定原理)

    关于Vue实现数据双向绑定的原理,请点击:Vue实现数据双向绑定的原理原文链接:JavaScript设计模式之观察...

  • vue双向数据绑定

    剖析Vue原理、实现双向绑定MVVM 几种实现双向绑定的做法 目前几种主流的mvc(vm)框架都实现了单向数据绑定...

网友评论

      本文标题:用jquery实现数据双向绑定

      本文链接:https://www.haomeiwen.com/subject/rderpttx.html