我正在尝试创建我的第一个 Javascript“原型”。它包括创建一个放置在谷歌地图 V3 上的标签,我在其中写的想法就像在长时间操作期间“加载标记”。
但是,我想“重用”我的原型并更改写入的文本。“加载标记”可以在形状加载操作等过程中变成“加载形状”……
这是我到目前为止所写的:
StateControl.prototype.text_ = null;
// Define setters and getters for this property
StateControl.prototype.getText = function () {
return this.text_;
}
StateControl.prototype.setText = function (text) {
this.text_ = text;
}
/** @constructor */
function StateControl(controlDiv, map, text) {
var control = this;
control.text_ = text;
controlDiv.style.padding = '5px';
// Set CSS for the control border
var stateUI= document.createElement('div');
//some css properties like stateUI.style.backgroundColor = 'black'
controlDiv.appendChild(stateUI);
// Set CSS for the control interior
var goHomeText = document.createElement('div');
stateUI.id = 'stateControl';
//some css properties like stateText.style.color = 'white';
stateText.innerHTML = '<strong>' + this.text_ + '</strong>';
stateUI.appendChild(stateText);
}
当我初始化我的谷歌地图时,我这样称呼我的原型:
var stateControlDiv = document.createElement('div');
var stateControl = new StateControl(stateControlDiv, map, "Loading the map");
stateControlDiv.index = 1;
map.controls[google.maps.ControlPosition.TOP_CENTER].push(stateControlDiv);
在初始化过程结束时,我将 StateControl 淡出
$("#stateControl").fadeOut(3000);
--- 这有效---
但是现在,我需要更改StateControl
用户单击名为“加载形状”的单选按钮时的文本。我想StateControl
fadeIn()
立即将“加载形状”作为文本,然后fadeOut(3000)
在加载形状时。我知道如何使用fadeIn()
and fadeOut()
,但我不知道如何更改文本,并且在加载形状时仍然出现“加载地图”。
我试过了
homeControl = StateControl.prototype.setText("Loading the shapes");
在我的loadShapes()
方法中,但只有当我StateControl
用好的文本创建一个新的时它才有效……但这是一种浪费,我只需要更新text_
属性。
我怎样才能做到这一点 ?