|
|
|
| Получаю абсолютно чистую страницу...
<head>
<script>
var theData=document.createElement('IMG');
theData.setAttribute('src','001.jpg');
theData.style.cursor='hand';
theData.onclick="func()";
document.body.appendChild(theData);
function func()
{
alert('Hi');
}
</script>
</head>
<body>
|
| |
|
|
|
|
|
|
|
для: coloboc66
(03.09.2006 в 22:00)
| | Скорей всего нужно запускаться
только после полной загрузки страницы. | |
|
|
|
|
|
|
|
для: RMW
(03.09.2006 в 22:32)
| | Да по body onload работает нормально,
правда в IE обработчик события для onclick
не работает, это вообще гемор назначать
из JS обработчики. По идее нужно 2-ве
версии кода для IE и для нормальных бр-в,
но впрочем работает так: theData.onclick=func; | |
|
|
|
|
|
|
|
для: RMW
(03.09.2006 в 23:31)
| | никаких 2 версий не надо просто пишите код по-человечески:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My shit demo</title>
<script language="JavaScript" type="text/javascript">
function myShit(){
var pic = document.createElement("img");
pic.setAttribute("src","001.jpg");
pic.setAttribute("width","300");
pic.setAttribute("height","300");
pic.style.cursor = "pointer";
pic.onclick = function(){
alert('Hi');
}
pic.onmouseover = function(){
this.style.border = "1px dashed #000";
}
pic.onmouseout = function(){
this.style.border = "none";
}
document.body.appendChild(pic);
}
</script>
</head>
<body onload="myShit()">
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: Padonak
(04.09.2006 в 00:26)
| | И так гоже.
Но молва идёт, будто в IE память куда-то
утекает при использовании неименованных
функций
http://htmlcoder.visions.ru/JavaScript/?29
но если их (функций) чуть-чуть, то много не утечёт.
А две версии кода не нужны действительно.
Но наверное понадобятся
если назначать обработчики через setAttribute(). | |
|
|
|
|
|
|
|
для: RMW
(04.09.2006 в 01:24)
| | Вот что непонятно- в учебниках для чайников никогда не упоминается такой пример использования функций, как предложено у вас. В учебниках предлагают сначала функцию объявить отдельно, с тем чтобы потом можно было ее вызывать из любого места страницы. Что я и сделал в моем первом сообщении. По идее все логично, а на практике не работает, а работает так, как предлагаете вы:
pic.onclick = function(){
alert('Hi');
}
|
Путаница какая-то в голове получается. И потом: вызов функции должен выглядеть так:
А приходится почему-то писать
Фиг разберешь... И кстати- что такое неименованная функция? | |
|
|
|
|
|
|
|
для: coloboc66
(04.09.2006 в 09:34)
| | Ну, под неименованной функцией я это самое и подразумевал
function(){}
У меня в учебнике есть приблизительно
такие примеры:
из главы
Обработчики событий как атрибуты
...атрибуты html тегов
<form name="f1">
<input type="button" name="b1" value="Нажми меня" onclick="alert('Спасибо!');">
</form>
|
из главы
Обработчики событий как свойства
...свойства объектов JS
<form name="f1">
<input type="button" name="b1" value="Нажми меня">
</form>
|
document.f1.b1.onclick=function(){alert('Спасибо!')}
|
или
function myFunc(){alert('Спасибо!')}
document.f1.b1.onclick=myFunc;
|
и далее: (точная цитата)
Обратите особое внимание на последнюю строку: здесь
после имени функции нет скобок.
Чтобы определить обработчик события, мы присваиваем
свойству-обработчику события саму функцию,
а не результат её вызова. На этом часто спотыкаются
начинающие программисты JavaScript.
Непонятно конечно ничего,
но вот... так написано:)
А вот кстати сама функция,
а не результат её вызова
| |
|
|
|
|
|
|
|
для: RMW
(04.09.2006 в 13:16)
| | Все вроде бы понял, кроме последнего кода (alert(myFunc); ). Так что- я могу установить обработчик события в качестве атрибута?!
var img1=document.createElement('img');
img1.setAttribute('onclick', func);
document.body.appendChild(img1);
function func()
{
alert('Hi');
}
|
Вот так?!
Да- так получилось! | |
|
|
|
|
|
|
|
для: coloboc66
(04.09.2006 в 13:52)
| | А если мы делаем так:
function myFunc(){alert('Спасибо!')}
document.f1.b1.onclick=myFunc;
|
То как передать в функцию параметры? | |
|
|
|
|
|
|
|
для: coloboc66
(04.09.2006 в 14:01)
| | Возможно эта статья покажется небезынтересной.
http://xpoint.ru/know-how/JavaScript/Atributyi?8
алерт(myFunc) - это я к тому, что вернёт алерт
если функцию вызвать без ()
пример:
function someFunc(){return 123;}
//возвращает "саму функцию"
alert(someFunc);
//возвращает результат вызова фн-ции
alert(someFunc());
|
| |
|
|
|