Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   a href onClick="function(THIS)" (https://javascript.ru/forum/events/7038-href-onclick%3D-function.html)

Anguis 12.01.2010 11:38

a href onClick="function(THIS)"
 
Здравствуйте.

Вот в этом коде this работает не так как надо:
<td>
<a href="#" onClick="glow(this)"> GlowFilter </a>
</td>


this возвращает не елемент(ссылку), а лишь ее атрибут href. Если делаю так:

<td>
<a href="#" onClick="glow(this.parentElement)"> GlowFilter </a>
</td>


То функции glow передается [object HTMLTableCellElement], но ни как не елемент ссылка.

Octane 12.01.2010 11:53

alert'ом проверяете, что приходит?

Anguis 12.01.2010 12:07

Да
И не только, задача - получить координаты ссылки и создать новый объект с такими-же координатами.
Естественно координат я не получаю и происходит ошибка при присвоении новому объекту координат со значением undifined

Octane 12.01.2010 12:14

alert для ссылок адрес показывает

B@rmaley.e><e 12.01.2010 12:16

<a href="#" onClick="alert(typeof this)"> GlowFilter </a>
alert выдаст object.

Anguis 12.01.2010 12:30

Цитата:

Сообщение от B@rmaley.e><e (Сообщение 40296)
<a href="#" onClick="alert(typeof this)"> GlowFilter </a>
alert выдаст object.

Да и в таком случае такой код:

<td>
<a href="#" id="menu" onClick="glow(this)"> GlowFilter </a>
</td>
...
function glow(el){
alert(typeof el); 
alert(el.style.position);
...
}


выдаст сначала object, а затем пустую строку. Т.е. ни к одному из свойств елемента доступ я получить не могу, а нужны следующие - координаты и размеры (offsetTop, offsetLeft, width. height)

Octane 12.01.2010 12:39

В свойстве style хранятся стили, записанные в соответствующий атрибут <tag style="...">, для получения реальных стилей элемента на станице используйте getComputedStyle/currentStyle.

Kolyaj 12.01.2010 13:07

Цитата:

Сообщение от Anguis
а нужны следующие - координаты и размеры (offsetTop, offsetLeft, width. height)

Так и проверяйте свойства offsetLeft, offsetTop, offsetWidth, offsetHeight.

Anguis 12.01.2010 13:17

Большое спасибо, проблема решена! :)


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