JS-从特定对象的生成按钮调用方法

时间:2017-02-23 08:33:23

标签: javascript arrays object prototypejs

我是编码的新手,我正在寻找一种从生成的按钮为我的数组的每个对象启动特定原型方法的方法

我已经将json数据循环,并将每个对象包含在js数组中。

//我的数据有3个对象

var readArr = JSON.parse(myData)

var js_arr = [];

//在对象数组上循环

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

    var generatedObject = new Object();

//来自原型的初始化方法

    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);

//生成一个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],...如何编码事实,当我单击按钮时,该方法必须通过“数组的对象”调用这会影响你的创作“

我对我的方法没有任何线索我尝试了几件事:

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

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

};

(返回read_arr [i]未定义),所以我只想通过现在这个名称更改read_arr [i]:“数组的对象,它会影响你的创作”!  我真的需要帮助...

感谢您对这个学前英语的期待和抱歉。

1 个答案:

答案 0 :(得分:0)

问题是当你进入点击功能时(即 - 当实际点击按钮时)你已经离开了循环,所以js不知道是什么{{1是的。

您需要将'read_arr[i]'作为参数传递给该函数。 基本上是这样的:

'read_arr[i]'

这会将功能的签名更改为参数 - newBtn.addEventListener('click', function (object) { object.DisplayUpdate(); },js_arr[i]); ,并将object作为参数传递。

希望有所帮助