onclick динамически созданного объекта
Добрый всем день!
У меня на голом JS в цикле динамичести создаются элементы и им устанавливается событие onclick
for (...) {
...
var link = document.createElement("a");
link.textContent = "blabla";
link.href = '#';
link.onclick = function() { ajaxCall(param); return false; };
div.appendChild(link);
}
беда в том, что мне не удается передать в функцию ajaxCall значение переменной param: передается не значение, а сама переменная, которая на момент клика уже не существует, что вызывает ошибку. param вычисляется в каждой итерации цикла для каждого объекта своя. Конечно, можно было бы сделать
link.onclick = "ajaxCall(" + param + ")";
Но FF такую конструкцию не принимает. Также пробовал устанавливать link.name=param и в ajaxCall обращаться как self.name - такое тоже не работает. Помогите, плз, уже с этим замучался.... |
Fobo$, выводите в виде строки
<div id="div"></div>
<script>
function abc(param) {
alert(param);
}
var div = document.getElementById("div");
for (i=0; i< 6; i++) {
div.innerHTML += "<a href='#' onClick='abc("+i+")'>blablabla</a><br>";
}
</script>
|
лучшее враг хорошему - пытался все красиво по DOM-у сделать и забыл про такое тривиальное решение.
Спасибо!!! |
lord2kim,
очень плохое решение использвать так innerHTML Fobo$, просто:
link.onclick = (function(param){ return function() { ajaxCall(param); return false; } })(param);
|
| Часовой пояс GMT +3, время: 10:04. |