首页 > 代码库 > 观察者模式 例子2
观察者模式 例子2
<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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。