Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   UpJump: Q&A :) (https://javascript.ru/forum/misc/14421-upjump-q.html)

Aetae 22.02.2011 19:20

Да не, не глупый. Я вот честно говоря не знаю почему в фф this у body возвращает window.)
<div onclick="this.firstChild.nodeValue = 'text';alert(this)">////
</div>

x-yuri 23.02.2011 12:09

потому что обработчик на window ставится на самом деле, ff такой ff :)
<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body onclick="alert([window.onclick,document.body.onclick]);">
</body>
</html>

UpJump 23.02.2011 13:34

Странно.. в чем тогда тут соль?

Этот код тупит только в 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>

x-yuri 23.02.2011 14:23

лучше вот на таком коде экспериментировать
<!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. Видимо он считает, раз ты такое делаешь, значит хочешь отлавливать клики по всей странице. Похоже на то, что это наследие прошлого

UpJump 24.02.2011 00:20

еще вопрос.
<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>

B@rmaley.e><e 24.02.2011 00:57

А с какой радости изменение str должно повлечь изменение document.body.style.width? В JS только объекты копируются по ссылке, примитивы - по значению.

UpJump 24.02.2011 01:21

ясно. спс

UpJump 07.03.2011 18:44

всем привет! назрел вопрос.
<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. Вот собсна и не пойму где я заглох?:(

Sweet 07.03.2011 19:19

Вообще, стили - это строки. В итоге opacity получается "0.1.1", это не корректно, поэтому opacity остается "0.1"

UpJump 07.03.2011 19:36

В точку! не подумал, а стоило бы проверить. СПАСИБО!:)


Часовой пояс GMT +3, время: 20:41.