Ich wollte einige jQuery Animatios dynamisch festlegen.Pass dynamische Parameter zu Callback-Funktion in einer Schleife
Der Code:
function anim(data) {
for (index in data) {
(function(){
var props = {};
props[data[index].property] = data[index].value;
data[index].elem.animate(
props,
500,
function() {
data[index].callback();
}
);
})();
}
}
var data =[
{
elem: elem1,
property: 'prop1',
value: 'val1',
callback: function() {
console.log('callback1');
}
},
{
elem: elem2,
property: 'prop2',
value: 'val2',
callback: function() {
console.log('callback2');
}
},
];
anim(data);
Das Problem ist bindend Rückrufe. Wenn der Rückruf ausgelöst wird, ist data[index]
im aktuellen Bereich nicht verfügbar. Kann mir jemand sagen, wie ich diese Rückruf-Funktion einstellen soll?
wie Sie Index in Daten? – rahulsm
Warum brauchen Sie eine Schließung der IIFE? Sie können es entfernen, um zu überprüfen oder den Index dort gerade zu führen, wie in der Antwort unten vorgeschlagen. – Jai