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, время: 01:22. |