Страница 1 из 1
не иннициализируется обработчик события onclick
Добавлено: 15 апр 2006, 16:07
Andrewvp
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);
}
выделенная строчка не работает, как присвоить значение обработчику события????
Добавлено: 15 апр 2006, 19:39
Oscar
Вот два варианта:
через 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>
Причём, если ф-ция test возвращает false, то href не срабатывает.
Добавлено: 15 апр 2006, 19:49
Andrewvp
дело не в этом! так-то оно работает без проблем!
если использовать такую комбинацию href (c #) и onclick (c return false), то после нажатия на ссылку (картинка смайлика), не прекращается "отображение" страницы. В твоем варианте смайлики перестанут быть "живыми" (прекратится прокрутка анимации) - это еще можно пережить, но после этого прекращается подгрузка недогруженых элементов!
Добавлено: 15 апр 2006, 20:01
Andrewvp
дело в том, что там где стоит alert(работает), реально стоит функция, которая этот смайлик вставляет в текстарий, я просто в конец этой функции поставил return false и получил false на чистом листе....
Добавлено: 15 апр 2006, 20:05
Oscar
Andrewvp,
в моём варианте js-функций смайлики не перестанут быть живимы, поскольку test возвращает false.
другое дело, что вариант "через href" действительно не пройдёт в таком случае.
То, что у тебя они могут замирать при этом коде - так это строку:
[url=javascript: addsml();]add smile[/url]
нужно заменить на:
add smile
Но! То, что тебе нужно было, заключается не в том, а вот тут:
lnk.onclick=test;
P.S. Спасибо за то, что просветил насчёт "прекращения подгрузки и анимации"!
Действительно, не знал ..
Добавлено: 15 апр 2006, 20:10
Oscar
Код: Выделить всё
<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>
так всё правильно работает?
Добавлено: 15 апр 2006, 21:12
Andrewvp
Нифига не получается, буду доделывать потом... щас другое горит.
Добавлено: 15 апр 2006, 21:17
Andrewvp
Дело в том, что в onclick передается текстовый параметр, так это событие какогото хрена генерируется при присвоении...
Ладно, больше времени нет эту тему развивать... позже напишу чего добился...
Добавлено: 18 апр 2006, 17:45
CrombL
У меня такого не происходит. Я наверное не правильн что-то сделал? Если у товарища генерируеться, а у меня нет - значит у меня бока