Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   владелец функции (https://javascript.ru/forum/misc/2088-vladelec-funkcii.html)

diagnost 30.10.2008 13:28

владелец функции
 
Вызываю функцию:
Код:

<img id ="0" src="Wiring/Вентилятор СО.png"onClick="Resize(0)">
И масштабирую картинку в функции Resize (0). Номер картинки передаю в аргумент функции следующим образом:
Код:

function Resize(I)
var pic = document.getElementById(I);

Нет ли другого способа обращения к функции, через нахождение элемента, ее вызвавшего, чтобы я не передавал аргумент вообще, т.е. так:
Код:

<img id ="0" src="Wiring/Вентилятор СО.png"onClick="Resize()">

EugenyK 30.10.2008 13:37

diagnost,
1-е: id не может быть числом и не может начинаться с числа.
2-е: В конкретном случае можно указать onClick="Resize(this)"

function Resize(obj){
     // obj будет ссылкой на вызвавший эту функцию объект
}

diagnost 30.10.2008 13:51

ОК, пишу в HTML:
Код:

<img name="pic0" src="Wiring/Вентилятор СО.png" onClick="Resize(this)"
вызываю функцию
Код:

function Resize(obj)
{alert(obj.width);}

Не работает. Подскажите, пожалуйста, как через obj обратиться к свойствам картинки

Kolyaj 30.10.2008 13:53

Что не работает? У img не свойства width, есть offsetWidth.

diagnost 30.10.2008 14:14

Любопытно сравнить width и offsetWidth:
Код:

alert(obj.width)
не работает, а
Код:

alert(obj.offsetWidth)
работает.

Код:

obj.offsetWidth = 100
не работает, а
Код:

obj.width = 100
работает

EugenyK 30.10.2008 14:51

diagnost,
google "javascript offsetWidth" первая ссылка
Цитата:

Note:

Read-only properties.
Return the width of any block-level or inline element.

Syntax:

document.getElementById("elementID").offsetHeight
document.all.elementID.offsetHeight // IE only
document.getElementById("elementID").offsetWidth
document.all.elementID.offsetWidth // IE only
свойство .width у тага img задано не было, поэтому обращаться к нему бессмысленно, также как и к .style.width (если он тоже не был задан)

diagnost 30.10.2008 15:04

Спасибо, буду учить матчасть.


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