Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   this - можно обойти? (https://javascript.ru/forum/events/30362-mozhno-obojjti.html)

czp 01.08.2012 22:31

this - можно обойти?
 
есть такой код
function test(elem) {
  alert(elem.getAttribute('href'));
}

<a href="tut url" onclick="test(this);">test</a>

можно как то напистаь так, что бы в html мне не нужно было передавать аргумент
"test(this);"


а внутри кода уже использовал this, и ссылалось оно на обьект штмл на тег <a>
такое возможно?

как то так что бы было :
function test( {
  alert(this.getAttribute('href'));
}

или
function test( {
  elem = this;
  alert(elem.getAttribute('href'));
}

oneguy 01.08.2012 22:38

Можно сделать запись прямо в свойство onclick:
переменнаяСодержащаяЭлементА.onclick=test;

cyber 01.08.2012 22:58

<a href="tut url" onclick="test.call(this);">test</a>

либо
document.getElementById('elem').onclick = function (){

}

czp 01.08.2012 23:03

понял спасибо за ответы:)

Aetae 01.08.2012 23:10

а зачем тебе?

Dmitriyff 02.08.2012 08:13

Пять способов вызвать функцию

в html
Цитата:

Сообщение от cyber
<a href="tut url" onclick="test.call(this);">test</a>

в js
Цитата:

Сообщение от cyber
document.getElementById('elem').onclick = function (){
 
}


про call test.call(this);
про apply test.apply(this);

cyber 02.08.2012 11:46

Цитата:

Сообщение от Dmitriyff (Сообщение 193862)

достаточно call, так как я не думаю что кто то будет передавать массив параметров через хтмл ;)

Dmitriyff 06.08.2012 03:37

Цитата:

Сообщение от cyber
достаточно call

да это так было, для расширения кругозора вопрос задавшего =-)


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