• 用jquery实现的简单数据双向绑定


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <script type="text/javascript" src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
    </head>
    <body>
        <input type="text" data-bind-0=name />
        <span data-bind-0="name" ></span>
        <script type="text/javascript">
     
        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.attr("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
                };
           
              return user;
        }
     
        var user = new User(0);
        user.set("name","text");
        
        </script>
    </body>
    </html>
  • 相关阅读:
    如何在一个页面调用另一个页面
    CSS3新增的选择器和属性
    js中函数和方法的区别
    jQuery中哪几种选择器
    关于JS数组的栈和队列操作
    HDU1232 畅通工程(并查集)
    并查集
    有关素数的基础算法
    二分教室
    蚂蚁下桥(思维)
  • 原文地址:https://www.cnblogs.com/catgatp/p/9265437.html
Copyright © 2020-2023  润新知