|
|
|
| Устанавливаю аттрибут следующим образом:
img1.setAttribute("onClick","addPrivate('" + itemArray.item(i).firstChild.data + "');");
|
Не устанавливается, в чем дело и как его установить? | |
|
|
|
|
|
|
|
для: MRE
(30.06.2007 в 18:45)
| | Попробовал:
img1.onClick = addPrivate(itemArray.item(i).firstChild.data);
|
Но отрабатывает не при клике, а при выполнении этой строчки. | |
|
|
|
|
|
|
|
для: MRE
(30.06.2007 в 18:45)
| | ONCLICK - не атрибут, а предсобытие.
В Эксплорере устанавливается методом attachEvent ('предсобытие', функция)
В Мозилле - addEventListener ('событие', функция, кратность) | |
|
|
|
|
|
|
|
для: CNT
(30.06.2007 в 19:23)
| |
img1.attachEvent('onClick',addPrivate(itemArray.item(i).firstChild.data));
|
Все равно не выходит, ошибку выдает.
Или что-то не так делаю? | |
|
|
|
|
|
|
|
для: MRE
(30.06.2007 в 20:04)
| | И так попробовал:
img1.attachEvent('onClick',function(){addPrivate(itemArray.item(i).firstChild.data)});
|
Ошибки нет, но и результа нет, при клике ничего не происходит.
Хотя если в html напрямую прописать, то все ок. | |
|
|
|
|
|
|
|
для: MRE
(30.06.2007 в 20:11)
| | Элемент добавляю динамически аяксом. | |
|
|
|
|
|
|
|
для: MRE
(30.06.2007 в 20:11)
| | В HTML-коде можно написать следующее:
<span id="mySpan" onclick="this.style.color = 'red';">кликни - покраснею</span>
| И всё будет замечательно работать.
А вот если инструкцию на событие CLICK "навешивать" скриптом, то использовать this уже будет нельзя, ибо для функции this - это она сама и есть. Необходимо будет в функции или напрямую обращаться к объекту mySpan:
<span id="mySpan">кликни - покраснею</span>
<script>
document.all.mySpan.attachEvent ('onclick', function () {document.all.mySpan.style.color = 'red'})
</script>
|
или же, если надо будет нескольким объектам "навесить" одну и ту же функцию, необходимо будет вычислять объект на который кликнули:
<span id="mySpan">кликни - покраснею</span>
<span id="otherSpan">и я тоже - покраснею</span>
<script>
function myFunc () {event.srcElement.style.color = 'red'}
document.all.mySpan.attachEvent ('onclick', myFunc);
document.all.otherSpan.attachEvent ('onclick', myFunc);
</script>
|
Мысль уловили?
Функция работает только с глобальными объектами.
Очень я сомневаюсь, что переменная i у вас объявлена глобальной на момент приаттачивания функции. | |
|
|
|
|
|
|
|
для: CNT
(30.06.2007 в 20:37)
| | Код:
all_online = getElementById('online');
img1 = document.createElement('img');
img1.setAttribute("src","pic/arrow.gif");
img1.setAttribute("id","a0");
all_online.appendChild(img1);
// img1.attachEvent('onClick',function(){addPrivate(itemArray.item(i).firstChild.data)});
document.getElementById('a0').onClick = function(){addPrivate(itemArray.item(i).firstChild.data);};
// img1.onClick = function(){addPrivate(itemArray.item(i).firstChild.data)};
|
Как я только не пробовал - не получается, возможно динамическое изменение страницы не допускает навешивание событий на динамически добавляемые теги, у меня ведь этот код выполняется не при загрузке страницы, а после некоторых событий и посылки запроса аяксом.
Если есть решение этой проблемы - скажите. | |
|
|
|
|
|
|
|
для: MRE
(30.06.2007 в 21:06)
| | Однако, мысль мою вы не уловили.
Попробую объяснить так:
<script>
var all_online = document.getElementById ('online');
var img1 = document.createElement ('img');
with (img1)
{
src = "pic/arrow.gif";
id = "a0";
attachEvent ('onclick', function () {alert ('Браузер не знает, что такое i')}});
}
all_online.appendChild (img1);
</script>
|
| |
|
|
|
|
|
|
|
для: CNT
(30.06.2007 в 21:21)
| | Без локальных переменных даже:
all_online = document.getElementById ('online');
img1 = document.createElement('img');
img1.setAttribute("src","pic/arrow.gif");
img2 = document.createElement('a');
img2.appendChild(img1);
all_online.appendChild(img2);
img2.attachEvent('onClick',function(){alert("234");});
img2.onClick = function(){alert("234");};
|
В опере выводятся оба алерта, а в IE6 нет. | |
|
|
|
|
|
|
|
для: MRE
(30.06.2007 в 21:44)
| | Блин столько времени потратил, а оказалось, что onClick надо было писать onclick.
Почему так все плохо?
Поясните о чувсвительности к регистру, ведь в коде напрямую я писал с большой и все ок было. | |
|
|
|