码迷,mamicode.com
首页 > 其他好文 > 详细

观察者模式 例子2

时间:2017-06-23 13:00:49      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:observer   type   tag   func   logs   htm   upd   value   select   

<html>
    <head></head>
    <style>
        #content,#ad,#study{
            width:200px;
            height: 100px;
            border: 1px solid black;
        }
    </style>
    <body>
        <h1>observe</h1>
        <select name="" id="">
            <option value="male">male</option>
            <option value="female">female</option>
        </select>
        <input type="button" onclick="t1()" value="观察ad">
        <input type="button" onclick="t2()" value="不观察ad">
        <div id="content">content</div>
        <div id="ad">ad</div>
    </body>
    <script>
        //select为被观察  下面内容为观察
        var sel=document.getElementsByTagName(select)[0];
        sel.observers={}
        //把观察的记录号
        sel.attach=function(key,obj){
            sel.observers[key]=obj;
        }
        sel.detach=function(key){
            delete this.observers[key];
        }
        sel.onchange=sel.notify= function () {
            for(var key in this.observers){
                this.observers[key].update(this);
            }
        }
        var content=document.getElementById(content);
        var ad=document.getElementById(ad);
        content.update=function (observee) {
            if(observee.value==male){
                this.innerHTML=car;
            }else if(observee.value=female){
                this.innerHTML=jianfei;
            }
        }
        ad.update=function (observee) {
            if(observee.value==male){
                this.innerHTML=male_ad;
            }else if(observee.value=female){
                this.innerHTML=female_ad;
            }
        }


        //让content观察select的变化
        sel.attach(content,content);
        function t1(){
            sel.attach(ad,ad);
        }
        function t2(){
            sel.detach(ad);
        }
    </script>
</html>

 

观察者模式 例子2

标签:observer   type   tag   func   logs   htm   upd   value   select   

原文地址:http://www.cnblogs.com/yuandongdong/p/7069040.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!