Прежде чем ввести function
, который вы передаете в each
, вам нужно захватить this
внешней функции в переменной, а затем использовать переменную внутри function
, которую вы передаете в each
.
function Foo()
{
this.someProperty = 5;
}
Foo.prototype.myFunc = function()
{
//do stuff...
};
Foo.prototype.bar = function()
{
// in here, this refers to object Foo
// capture this in a variable
var that = this;
$('.some_elements').each(function()
{
// in here, this refers to an item in the jQuery object
// for the current iteration
console.log(that);
that.myFunc();
});
};
Как вы узнали, this
внутри функции, которую вы передаете each
, ссылается на текущий элемент в объекте jQuery на каждой итерации, т.е. первая итерация ссылается на элемент в свойстве 0, вторая итерация ссылается на пункт на имущество 1 и т. д.