首先需要使用的所有代码片段(截取)
复制代码代码如下所示:
menucontrol.prototype.boxdisplay = false; / /显示图层选择菜单
MenuControl.prototype.controlUI;
menucontrol.prototype.show =函数(){
如果(控制。boxdisplay){
pointcontrol.hide();
}
menuboxdiv.style.display = ;
this.boxdisplay =真;
this.controlui.style.backgroundcolor =# dddddd;
};
menucontrol.prototype.hide =函数(){
menuboxdiv.style.display =没有;
this.boxdisplay = false;
this.controlui.style.backgroundcolor =白色;
};
/层选择开关
函数的MenuControl(controldiv,MAP){
controldiv.style.padding = '5px;
无功controlui = document.createelement('div);
this.controlui = controlui;
controlui.style.backgroundcolor =白色;
controlui.style.height = '18px;
controlui.style.borderstyle = 'solid;
controlui.style.borderwidth = '1px;
controlui.style.cursor = 'pointer;
controlui.style.textalign = 'center;
controlui.title = '点击启用菜单;
controldiv.appendchild(controlui);


VAR语音控制文本= document.createelement('div);
controltext.style.fontfamily = 'arial,Sans Serif';
controltext.style.fontsize = '12px;
controltext.style.paddingleft = '4px;
controltext.style.paddingright = '4px;
controltext.innerhtml =层选择;
controlui.appendchild(语音控制文本);


google.maps.event.adddomlistener(controlui,听到咔哒声,函数()){
如果(菜单控制。boxdisplay){
MenuControl.hide();
其他{ }
MenuControl.show();
}
});
}
点开关盒
pointcontrol.prototype.boxdisplay = false; / /显示图层选择菜单
pointcontrol.prototype.controlui;
PointControl.prototype.show = function () {
如果(菜单控制。boxdisplay){
MenuControl.hide();
}
pointboxdiv.style.display = ;
this.boxdisplay =真;
this.controlui.style.backgroundcolor =# dddddd;
};
pointcontrol.prototype.hide =函数(){
pointboxdiv.style.display =没有;
this.boxdisplay = false;
this.controlui.style.backgroundcolor =白色;
};
功能模型(controldiv,MAP){
controldiv.style.padding = '5px;


无功controlui = document.createelement('div);
this.controlui = controlui;
controlui.style.backgroundcolor =白色;
controlui.style.height = '18px;
controlui.style.borderstyle = 'solid;
controlui.style.borderwidth = '1px;
controlui.style.cursor = 'pointer;
controlui.style.textalign = 'center;
controlui.title =单击控制点菜单;
controldiv.appendchild(controlui);


VAR语音控制文本= document.createelement('div);
controltext.style.fontfamily = 'arial,Sans Serif';
controltext.style.fontsize = '12px;
controltext.style.paddingleft = '4px;
controltext.style.paddingright = '4px;
controltext.innerhtml =点;
controlui.appendchild(语音控制文本);


google.maps.event.adddomlistener(controlui,听到咔哒声,函数()){
如果(控制。boxdisplay){
pointcontrol.hide();
其他{ }
PointControl.show();
}
});
}

谷歌地图的应用是在右边有两个div按钮,通过点击左边打开div菜单。
要求
开放之前,判断子菜单已经打开,如果是的话,关闭,然后打开它。

当菜单开关,按钮会变色,根据相应的行为

这需要另一个按钮的操作的属性和方法,以在每个按钮的显示()方法下实现开关的效果。

起初,它是这样写的。
复制代码代码如下所示:
MenuControl.prototype.controlUI;
menucontrol.prototype.show =函数(){
controlui.style.backgroundcolor =# dddddd '; / /直接调用属性
};
函数的MenuControl(controldiv,MAP){
controlui = document.createelement('div);
controlui.style.backgroundcolor =白色;
}

作为一个结果,无论哪个菜单切换,只有一个按钮变色

原因是,controlui莫名其妙的被定义为一个全局变量。

然后我试着去做
复制代码代码如下所示:
MenuControl.prototype.controlUI;
menucontrol.prototype.show =函数(){
this.controlui.style.backgroundcolor =# dddddd '; / /添加这个关键词
};
函数的MenuControl(controldiv,MAP){
controlui = document.createelement('div);
controlui.style.backgroundcolor =白色;
}

结果还是失败了。

然后我想通了,也许没关系。
复制代码代码如下所示:
menucontrol.prototype.controlui.style.backgroundcolor =白色; / /你给了一个任务,你能到哪里去
menucontrol.prototype.show =函数(){
this.controlui.style.backgroundcolor =# dddddd;
};
函数的MenuControl(controldiv,MAP){
controlui = document.createelement('div);
this.controlui.style.backgroundcolor =白色;
}

至少有一条错误消息,不能将样式属性添加到未定义的内容中。

所以我不顾一切地向所有属性添加全局变量,这样调用就更方便了。

没有思考,灵感来自我自己

所以代码开始了
复制代码代码如下所示:
menucontrol.prototype.controlui; / /建立财产第一,挖一个坑
menucontrol.prototype.show =函数(){
this.controlui.style.backgroundcolor =# dddddd '; / /呼叫使用此关键字,实际调用的是this.controlui
};
函数的MenuControl(controldiv,MAP){
无功controlui = document.createelement('div '); / /建立一个局部变量,和正常作业
this.controlui = controlui; / /局部变量分配到抗此属性的对象,实现相关的参考
controlui.style.backgroundcolor = ' '; / /正常的参考对象操作
}

通过这种方式,原型添加的属性与由它们自己创建的本地变量相关联,以便它们可以被外部世界的其他对象调用。

为了获得成功,相同的name属性被类对象和全局调用区分开来。