Я попытался вызвать метод addProject()
со вторым аргументом как текущий выбранный элемент в цикле. Но ссылка на аргумент null
, когда я позвонил addProject()
.вызов выбранного элемента цикла в методе .onclick
Я думаю, что ссылка на текущий выбранный аргумент в цикле теряется, когда я использую кнопку .onclick
. Но как я могу дать этот аргумент методу другим способом?
$(document).ready(function() {
for (var i = 0; i <= proj_array.length - 1; i++) {
var h = document.createElement("h1");
var p = document.createElement("p");
p.innerHTML = proj_array[i].projectdescription;
h.innerHTML = proj_array[i].projectname;
$(".projectsList").append(h).append(p);
var button = document.createElement("button");
button.style.width = "70px";
button.style.height = "27px";
button.innerHTML = "Add";
$(button).addClass("enable");
button.onclick = function() {
if ($(button).hasClass("enable")) {
addProject(this, proj_array[i]);
}
}
$(p).append(button);
}
$(".projectsList").accordion();
});
почему это так? я не могу понять, когда требуется закрытие, и когда переменные, определяемые «снаружи», также доступны во внутренних функциях – Alp
В цикле 'i' меняется для каждой итерации, поэтому вам нужно зафиксировать его в закрытии , – adeneo
Умное использование '$ .each' для« захвата »индекса и значения! –