I want to add a link dynamically and attach "onclick" event on it. Here's a simplified version of what I have:
for (var i = 0; ....) {
var a1 = document.createElement("a");
a1.innerHTML = "My link123";
a1.addEventListener("click", function(event) {
myFunc(someArray[i].property1, event);
// alert("test123");
});
var p1 = document.createElement("p");
var sp1 = document.createElement("span");
//..........
divContainer.innerHTML += a1.outerHTML + p1.outerHTML + sp1.outerHTML;
}
But it doesn't trigger the "click" event when I click on it.
update:
after it's created and I click on it, I get:
myFunc(someArray[i].property1, event); -- Cannot read property 'property1' of undefined
I guess it's something related to how clojures are evaluated.
update2
I've tried this:
a1.addEventListener("click", function(event) {
(function(i2){
myFunc(i2, event);
})(myArray[i].property1);
});
But it said at runtime when I clicked on it "property1 isn't defined"; How can I fix that?