1

初めての 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_プロパティを更新するだけです。

これどうやってするの ?

4

1 に答える 1