Это будет небольшая статья о том, как получить доступ к переменной области действия в javascript. Давайте взглянем на следующий сегмент кода.
$('.element').click(function(){ console.log(this) // this is a reference to the element clicked on });
Если вы проверите консоль во время выполнения приведенного выше кода, вы увидите вывод ссылочного элемента, на который нажали. Это нормально, пока нам не понадобится получить доступ к объекту ссылки в другой области.
$('.element').click(function(){ console.log(this); // this is a reference to the element clicked on $('.elements').each(function(){ console.log(this); //in this scope, it will represent the current loop element }); })
Чтобы преодолеть эту проблему, есть простое решение. Назначение этойпеременной пользовательской переменной. Решение простое.
$('.element').click(function(){ console.log(this); var that = this; // this is a reference to the element clicked on $('.elements').each(function(){ console.log(this); //in this scope, it will represent the current loop element console.log(that) //You still have the reference object which the click initiated }); })
А пока я бы не рекомендовал называть переменную так , поскольку это усложнит весь сценарий, если он будет состоять из нескольких строк кода. Итак, используйте более описательный метод именования.