2017-02-23 12 views
0

用に生成されたボタンからの方法jsonデータをループさせて、各オブジェクトをjs配列に含めます。JS-コール私は、コードで新しいM、と私は、生成ボタン</p> <p>からの私の配列の各オブジェクトのための具体的なプロトタイプのメソッドを起動する方法を探しmは特定のオブジェクト

//私のデータは、プロトタイプ

generatedObject.init(readArr[i].prop1, readArr[i].prop2, readArr[i].prop3, readArr[i].prop4, readArr[i].prop5, 
      readArr[i].prop6, readArr[i].prop7, readArr[i].prop8); 

    js_arr.push(generatedObject); 

//からinitメソッドが生成//

for (var i = 0; i < readArr.length; i++) { 

    var generatedObject = new Object(); 

オブジェクトのアレイ上に3つのオブジェクト

var readArr = JSON.parse(myData) 

var js_arr = []; 

//ループを持ってdivはそれぞれの発生のためのボタンを含みます

var newCntent = document.createElement('div'); 
    newCntent.id = readArr[i].prop1 + i; 
    newCntent.className = "cntent"; 
    document.getElementById('zone_btn').appendChild(newCntent); 

// divの

var newBtn = document.createElement('div'); 
    newBtn.id = i + readArr[i].prop1; 
    newBtn.className = "etalonBtn"; 
    newBtn.innerHTML = readArr[i].prop1; 
    document.getElementById(newCntent.id).appendChild(newBtn); 

内のボタンを作成し、私はObjectクラスのプロトタイプのメソッドを持って、私が欲しいのは、ボタンにリンクされたオブジェクトごとにそのメソッドを起動できました。 最初に生成されたボタンは、js_arr [0]のメソッド、js_arr [2]の2番目のメソッドを起動します...ボタンをクリックすると、そのメソッドは "ただ

newBtn.addEventListener('click', function() { 

     read_arr[i].DisplayUpdate(); 
    }); 

}; 

(read_arrを返す[i]が定義されていない)ので、私:私はいくつかのことを試してみました、私はこれを行うことができる方法上の任意の手掛かりを持っていない「

をあなたの創造をpermetted配列read_arr [i]をこれで変えたいと思っています。これは、 "あなたの創造物を完成させた配列のオブジェクト"です。 と私は本当にこの助けが必要です...

この幼稚園の英語をありがとうとありがとうございます。

+0

?それはループの中にありますか? – Shtut

+0

はい、それは悪い考えですか?コンセプトは関連するonclickイベントでボタンを生成することでしたが、関連性があるかどうかはわかりません。 –

答えて

0

クリック機能(つまり、実際にボタンをクリックしたとき)が既にループから外れているため、jsは何が'read_arr[i]'であるかわからないという問題があります。

'read_arr[i]'をパラメータとして関数に渡す必要があります。基本的に このような何か:

newBtn.addEventListener('click', function (object) { 
     object.DisplayUpdate(); 
    },js_arr[i]); 

これもPARAMETER- objectを取るために、関数のsignitureを変更し、また、そのパラメータとしてjs_arr[i]を渡します。

+0

最初に多くのことをありがとう! –

+0

新しい問題が修正されました。デバッガはオブジェクトを返します。DisplayUpdateは関数ではなく、生成されたオブジェクトをクラスの類似として認識していないようです。 –

+0

alert(JSON.stringify(object))のようなonclickイベントでアラートを起動しようとしました。私のオブジェクト値の代わりに私を返信します(「信頼されています:真」)、どういう意味ですか?もう一度ごめんなさい。私はいくつかのことを誤解しなければなりません... –

0

を助け

希望また、あなたはループ内のボタンを作成するときに呼び出す機能を割り当てると結合することができる:あなたがイベントリスナーを設定してください

var newBtn = document.createElement('div'); 
    newBtn.id = i + readArr[i].prop1; 
    newBtn.className = "etalonBtn"; 
    newBtn.innerHTML = readArr[i].prop1; 
    newBtn.onclick = jsArr[i]; 
関連する問題