Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   bind: как передать функции указатель на объект (https://javascript.ru/forum/jquery/9570-bind-kak-peredat-funkcii-ukazatel-na-obekt.html)

trial 25.05.2010 00:40

bind: как передать функции указатель на объект
 
Суть проблемы в следующем:
скажем, есть элемент select на странице
<select id="id1" onclick="return MyFunc(arg1, arg2, this);">
<option>something</option>
</select>


Мне жизненно необходимо переназначать обработчик динамически с новыми аргументами. Передать аргументы arg1,arg2 не проблема, но как правильно передать this? Чтобы в момент срабатывания события передавался точно такой же this как в примере выше.
Т.е. я хочу что-то такое:
$('#id1').click(function(){return MyFunc(arg1, arg2, this)});

Как объяснить глупому компьютеру, что this относится к объекту select'а?:-?

e1f 25.05.2010 01:24

Цитата:

Сообщение от trial (Сообщение 56407)
Т.е. я хочу что-то такое:
$('#id1').click(function(){return MyFunc(arg1, arg2, this)});

Как объяснить глупому компьютеру, что this относится к объекту select'а?:-?

Ну и? this же передается, все нормально. В чем проблема-то?

trial 25.05.2010 01:26

Цитата:

Сообщение от e1f (Сообщение 56412)
Ну и? this же передается, все нормально. В чем проблема-то?

this передается не тот, т.к. в момент бинда this это что-то другое, но не указатель на селект.

e1f 25.05.2010 01:32

Либо Вы что-то путаете, либо даете недостаточно данных. В приведенном Вами выше коде, при вызове click, this будет именно select'ом.

trial 25.05.2010 01:35

Да, вы правы, не туда смотрел. Перепроверил - все заработало.


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