初めての Javascript の「プロトタイプ」を作成しようとしています。これは、Google マップ 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);
}
Googleマップを初期化するとき、プロトタイプを次のように呼び出しています:
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);
init プロセスの最後に、StateControl をフェードアウトします。
$("#stateControl").fadeOut(3000);
--- これは機能します ---
しかし、ユーザーが「形状の読み込み」という radioButton をクリックしたとき
のテキストを変更する必要があります。「形状の読み込み」をテキストとしてすぐに、次に形状が読み込まれたときにお願いしStateControl
ます。との使用方法は知っていますが、テキストの変更方法がわかりません。また、形状をロードするときに「マップをロードしています」と表示されます。StateControl
fadeIn()
fadeOut(3000)
fadeIn()
fadeOut()
で試しました
homeControl = StateControl.prototype.setText("Loading the shapes");
私のloadShapes()
方法では、良いテキストで新しいものを作成した場合にのみ機能StateControl
します...しかし、それは無駄であり、text_
プロパティを更新するだけです。
これどうやってするの ?