2013-04-20 2 views
0

У меня есть одна проблема для начинающих. У меня есть «меню», меню - таблица стилей и код в jQuery, который заставляет меню перемещаться. Мой вопрос в том, почему я не могу использовать $ this varible в своем коде? Я большой собеседник в jQuery, так что будьте терпеливы со мной. Я буду рад за любой ответ.

$(document).ready(function(){ 
    $('.item').hover(function(){ 
     $($this).stop().animate({paddingLeft: '20px'}, "slow"); 
}, function(){ 
     $($this).stop().animate({paddingLeft: '0px'}, "slow"); 
    }); 
}); 

Мой код: jsFiddle

+4

$ это не PHP ;-) – Virus721

+1

Это был не вопрос ... –

+0

Хмм, что это за ответ? Я просто говорю, что искатель не спрашивает что-то о PHP, но что-то о jQuery и сомневается в этом! –

ответ

11

Это просто должно быть $(this)

2

$ префикс (в Javascript коде/JQuery) перед переменной, как правило, соглашение используется для указания того, что переменная является jQuery (в отличие от простого Javascript). Если вы видели это раньше, это похоже на любую регулярную переменную.

Вместо этого вы должны использовать $(this), который «обертывает» this в объекте jQuery.

0

использование этого

$(document).ready(function(){ 
    $('.item').hover(function(){ 
     $(this).stop().animate({paddingLeft: '20px'}, "slow"); 
    }, function(){ 
     $(this).stop().animate({paddingLeft: '0px'}, "slow"); 
    }); 
}); 
2

часто люди используют $this кэшировать $(this) так, что они не должны повторно инициировать объект JQuery, который стоит дорого.

$this = $(this) 
$this.stop() 
$this.animate() 
// etc... 

Это делается по соглашению, а $ символ в JavaScript не имеет особого смысла. Думаю, я бы упомянул, как никто другой, кажется, не упоминал причину.

0

$this и this не то же самое. В разработке, когда мы пишем как var $this = $(this), чем Он стал объектом jQuery. $this обозначают, что в в настоящее время у нас есть объект jQuery.It только для refrence вы можете использовать любую другую переменную для этого $, это необязательно. Вы можете написать vat $that = $(this) и использовать, что он будет вести себя одинаково.

Смежные вопросы