Да не, не глупый. Я вот честно говоря не знаю почему в фф 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, время: 00:52. |