• 双向数据绑定


    <textarea type="number"  data-bind-123="name" /></textarea><br><br>
    <textarea type="number"  data-bind-456="name1" /></textarea>
    <script src="http://cdn.bootcss.com/jquery/3.1.0/jquery.min.js"></script>
    <script>
    // object_id 对象id
    function DataBinder(object_id){
      //使用jQuery对象做一个简单订阅
      var pubSub=jQuery({});
      var data_attr="bind-"+object_id,
        message=object_id+":change";
      //监听change事件
      jQuery(document).on("change","[data-"+data_attr+"]",function(eve){
        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("")){
            $bound.html(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
        };
      // Subscribe to PubSub
      binder.on(uid+":change",function(evt,attr_name,new_val,initiator){
        if(initiator!==user){
          user.set(attr_name,new_val);
        }
      });
      return user;
    }
    //
    var user=new User(123);
    user.set("name","Wolfgang");
    //
    var user1=new User(456);
    user1.set("name1","Wolfgang789");
    //
    console.log(user.get("name"));
    console.log(user1.get("name1"));
    </script>
    

    通过change事件来实现,1.试图端change触发修改服务端dade, 服务端dade修改触发change修改页面。

  • 相关阅读:
    #35 string(缩点+动态规划)
    BZOJ2744 HEOI2012朋友圈(二分图匹配)
    BZOJ2749 HAOI2012外星人(数论)
    BZOJ2743 HEOI2012采花(离线+树状数组)
    洛谷 P3539 [POI2012]ROZ-Fibonacci Representation 解题报告
    关于图论的一些问题模型
    洛谷 P2505 [HAOI2012]道路 解题报告
    ST表
    洛谷 P4754 True Vegetable 解题报告
    洛谷 P2053 [SCOI2007]修车 解题报告
  • 原文地址:https://www.cnblogs.com/ytb-wpq/p/6269642.html
Copyright © 2020-2023  润新知