Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.09.2012, 13:43
Новичок на форуме
Отправить личное сообщение для Fobo$ Посмотреть профиль Найти все сообщения от Fobo$
 
Регистрация: 01.09.2012
Сообщений: 2

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 - такое тоже не работает. Помогите, плз, уже с этим замучался....
Ответить с цитированием
  #2 (permalink)  
Старый 01.09.2012, 15:13
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

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>
Ответить с цитированием
  #3 (permalink)  
Старый 02.09.2012, 19:11
Новичок на форуме
Отправить личное сообщение для Fobo$ Посмотреть профиль Найти все сообщения от Fobo$
 
Регистрация: 01.09.2012
Сообщений: 2

лучшее враг хорошему - пытался все красиво по DOM-у сделать и забыл про такое тривиальное решение.
Спасибо!!!
Ответить с цитированием
  #4 (permalink)  
Старый 02.09.2012, 19:14
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

lord2kim,
очень плохое решение использвать так innerHTML

Fobo$,
просто:
link.onclick = (function(param){ return function() { ajaxCall(param); return false; } })(param);
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка onclick динамически созданного объекта skulema Events/DOM/Window 2 12.08.2012 14:57
Как в IE динамически установить значение события onClick? Гость Элементы интерфейса 6 16.01.2011 23:46
Заполнить список значениями из динамически созданного выпадающего списка zhuzha Элементы интерфейса 0 17.08.2010 14:40
Динамическое создание елемента из динамически созданного элемента. Anguis Элементы интерфейса 10 16.12.2009 17:26
Возможна ли смена типа созданного объекта в Javascript? phprus Общие вопросы Javascript 9 04.07.2009 02:41