Да не, не глупый. Я вот честно говоря не знаю почему в фф this у body возвращает window.)
<div onclick="this.firstChild.nodeValue = 'text';alert(this)">//// </div> |
потому что обработчик на window ставится на самом деле, ff такой ff :)
<!doctype html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body onclick="alert([window.onclick,document.body.onclick]);"> </body> </html> |
Странно.. в чем тогда тут соль?
Этот код тупит только в ff. Вернее возвращает только undefined. <body onclick="alert(document.body.onclick);"> </body> Почему здесь событие работает только в ff? <!doctype html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body onclick="alert(document.body.onclick);"> </body> </html> |
лучше вот на таком коде экспериментировать
<!doctype html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body onclick="alert([window.onclick,document.body.onclick]);" style="height: 50px; border: 1px solid red;"> </body> </html> в ff обработчик на самом деле назначается window, хоть и прописан для body. Видимо он считает, раз ты такое делаешь, значит хочешь отлавливать клики по всей странице. Похоже на то, что это наследие прошлого |
еще вопрос.
<body onclick="f();" style="height: 50px; width:100px; border: solid black;"></body> <script> function f(){ var str = document.body.style.width; str = '50px'; alert(str); } </script> Почему не срабатывает? alert пишет что str == 50px и все должно быть тип-топ. Вот другой вариант. Напрямую и все ок. <body onclick="f();" style="height: 50px; width:100px; border: solid black;"></body> <script> function f(){ document.body.style.width = '50px'; } </script> |
А с какой радости изменение str должно повлечь изменение document.body.style.width? В JS только объекты копируются по ссылке, примитивы - по значению.
|
ясно. спс
|
всем привет! назрел вопрос.
<style> div { position:absolute; width:100px; height:100px; background: red; } </style> <script> function f(){ var div = document.getElementsByTagName('div')[0]; div.style.opacity = 0; setInterval(function(){div.style.opacity += .1;} , 10); } </script> <body onclick='f();'> <div></div> </body> opacity не увеличивается более чем на 0.1. Вот собсна и не пойму где я заглох?:( |
Вообще, стили - это строки. В итоге opacity получается "0.1.1", это не корректно, поэтому opacity остается "0.1"
|
В точку! не подумал, а стоило бы проверить. СПАСИБО!:)
|
Часовой пояс GMT +3, время: 20:41. |