У меня возникли трудности с использованием jQuery для привязки функции к элементу. В основном у меня есть набор div, которые я загружаю с помощью JSON. Каждый элемент JSON имеет связанное «действие», которое определяет, какую функцию вызывать, если щелкнуть этот div.Заказ привязки jQuery к элементам?
Как я итерацию по каждому из пунктов JSON, я (editied для ясности):
for (var i = 0; i < JSONOBJECT.length; i++) {
var divbox = $('<div id="' + i + '"><img /></div>');
var action = JSONOBJECT[i]["action"];
$(divbox).click(function() {
eval(action); // bind function
});
$('.navigationarea').append(divbox); // Append to area
}
Так, например, JSONOBJECT[0]["action"]
может содержать "doThis()"
, в то время как JSONOBJECT[1]["action"]
может содержать "doThis2()"
.
Проблема заключается в том, что action
всегда является действием, связанным с последним элементом объекта JSON. Я знаю, что это проблема, связанная с локализацией переменной (или созданием копии?), Но мне ее не хватает.
Могу ли я получить помощь? Спасибо заранее.
Спасибо. Это отличный совет по внедрению, и я также хорошо переработал код. – Rio