Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Странное поведение jquery (https://javascript.ru/forum/jquery/13545-strannoe-povedenie-jquery.html)

Ziki 02.12.2010 19:37

Странное поведение jquery
 
Здравствуйте!
Приключилась странная проблема, не работает объект this.
В частности если взять элементарный пример:
<div onClick="myfunction()" title="bla-bla">Моя функция</div>

и создать функцию вида:
function myfunction(){
    alert($(this).attr('title'))
}


то в ответ не получаю ничего, не ошибки, не алерта.

если взять функцию:
function myfunction(){
    alert($(this))
}


Получаю [object Object]

если:
function myfunction(){
    alert(this)
}


получу [object Window]

Такое впечатление что объект this просто теряется.
Впервые сталкиваюсь с такой проблемой, подскажите пожалуйста в какую сторону копать.

exec 02.12.2010 19:44

Передавайте объект через аргумент ф-ции:

function myfunction(a) {
alert(a);
}


myfunction(this);


В предпоследнем коде this равен window, так же как и в последнем, просто ф-ция $() делает jQuery-объектом всё, что в неё передали, и поэтому выдаёт [object Object]. Нетрудно догадаться, что во втором коде вы пытаетесь забрать title у window.

Ziki 02.12.2010 20:25

Через передачу объекта в качестве аргумента функции все заработало, но может подскажете в чем причина такого поведения у скриптов?
Раньше все делал точно так же, но таких проблем не было.

exec 02.12.2010 21:09

Я же всё объяснил в пред. посте…


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