не иннициализируется обработчик события onclick
Модератор: Duncon
function addsml(){
var cc1=document.getElementById("td1");
var sml = document.createElement("IMG");
var lnk = document.createElement("A");
lnk.href="#";
lnk.onclick="window.alert('Работает'); return false";
sml.src="smiles/nea.gif";
sml.border=0;
lnk.appendChild(sml);
cc1.appendChild(lnk);
}
выделенная строчка не работает, как присвоить значение обработчику события????
var cc1=document.getElementById("td1");
var sml = document.createElement("IMG");
var lnk = document.createElement("A");
lnk.href="#";
lnk.onclick="window.alert('Работает'); return false";
sml.src="smiles/nea.gif";
sml.border=0;
lnk.appendChild(sml);
cc1.appendChild(lnk);
}
выделенная строчка не работает, как присвоить значение обработчику события????
- Oscar
- Сообщения: 963
- Зарегистрирован: 29 май 2004, 13:44
- Откуда: Мюнхен (рожден в Киеве)
- Контактная информация:
Вот два варианта:
через href
и через js-функцию
Причём, если ф-ция test возвращает false, то href не срабатывает.
через href
и через js-функцию
Код: Выделить всё
<script>
function test() {
alert('function');
return false;
}
function addsml(){
var cc1=document.getElementById("test");
var sml = document.createElement("IMG");
var lnk = document.createElement("A");
lnk.href="javascript: alert('href');";
lnk.onclick=test;
sml.src="smile.gif";
sml.border=0;
lnk.appendChild(sml);
cc1.appendChild(lnk);
}
</script>
[url=javascript: addsml();]add smile[/url]
<div id="test" style="border: 1px solid #000000; height: 100px; width: 100px;"></div>
дело не в этом! так-то оно работает без проблем!
если использовать такую комбинацию href (c #) и onclick (c return false), то после нажатия на ссылку (картинка смайлика), не прекращается "отображение" страницы. В твоем варианте смайлики перестанут быть "живыми" (прекратится прокрутка анимации) - это еще можно пережить, но после этого прекращается подгрузка недогруженых элементов!
если использовать такую комбинацию href (c #) и onclick (c return false), то после нажатия на ссылку (картинка смайлика), не прекращается "отображение" страницы. В твоем варианте смайлики перестанут быть "живыми" (прекратится прокрутка анимации) - это еще можно пережить, но после этого прекращается подгрузка недогруженых элементов!
дело в том, что там где стоит alert(работает), реально стоит функция, которая этот смайлик вставляет в текстарий, я просто в конец этой функции поставил return false и получил false на чистом листе....
- Oscar
- Сообщения: 963
- Зарегистрирован: 29 май 2004, 13:44
- Откуда: Мюнхен (рожден в Киеве)
- Контактная информация:
Andrewvp,
в моём варианте js-функций смайлики не перестанут быть живимы, поскольку test возвращает false.
другое дело, что вариант "через href" действительно не пройдёт в таком случае.
То, что у тебя они могут замирать при этом коде - так это строку:
[url=javascript: addsml();]add smile[/url]
нужно заменить на:
add smile
Но! То, что тебе нужно было, заключается не в том, а вот тут:
lnk.onclick=test;
P.S. Спасибо за то, что просветил насчёт "прекращения подгрузки и анимации"!
Действительно, не знал ..
в моём варианте js-функций смайлики не перестанут быть живимы, поскольку test возвращает false.
другое дело, что вариант "через href" действительно не пройдёт в таком случае.
То, что у тебя они могут замирать при этом коде - так это строку:
[url=javascript: addsml();]add smile[/url]
нужно заменить на:
add smile
Но! То, что тебе нужно было, заключается не в том, а вот тут:
lnk.onclick=test;
P.S. Спасибо за то, что просветил насчёт "прекращения подгрузки и анимации"!
Действительно, не знал ..
- Oscar
- Сообщения: 963
- Зарегистрирован: 29 май 2004, 13:44
- Откуда: Мюнхен (рожден в Киеве)
- Контактная информация:
Код: Выделить всё
<script>
function addsml(){
var cc1=document.getElementById("test");
var sml = document.createElement("IMG");
var lnk = document.createElement("A");
lnk.href="#";
lnk.onclick=addsml;
sml.src="smile.gif";
sml.border=0;
lnk.appendChild(sml);
cc1.appendChild(lnk);
return false;
}
</script>
[url=#][img]smile.gif[/img][/url]
<div id="test" style="border: 1px solid #000000; height: 100px; width: 100px;"></div>
Нифига не получается, буду доделывать потом... щас другое горит.
Дело в том, что в onclick передается текстовый параметр, так это событие какогото хрена генерируется при присвоении...
Ладно, больше времени нет эту тему развивать... позже напишу чего добился...
Ладно, больше времени нет эту тему развивать... позже напишу чего добился...
У меня такого не происходит. Я наверное не правильн что-то сделал? Если у товарища генерируеться, а у меня нет - значит у меня бока