jquery this и object this
Добрый день друзья. Подскажите новичку если есть возможность.
Например у меня есть объект.
var o = { fieldname:'a', get:function(){ alert(this.arr[1]);}, arr: [1,2,3] };
Если сделать: o.get(); // 2 То все будет работать как и задумано. И ответ будет 2. Вопрос в ином, например в методе get у нас будет кусочек jquery кода. Например:
$(this.fieldname)
.click(function() {
$(this)... ....
})
То ничего работать не будет. Так как this.fieldname относится к объекту, а $(this) - это к jquery. Не знаю понятно ли изъяснился, прошу подсказать как обойти данную проблему, или как это грамотно решается? Спасибо. |
var obj = {
selector: '#test',
test: function() {
var _this = this;
$(this.selector).click(function() {
console.log(this, _this);
});
}
};
|
Спасибо, проанализирую.
|
С сожалению такой вариант наверное не будет работать так как переменная var _this = this; будет доступна только в методе test, а если будет второй метод то как из него вызвать _this.test() если там ничего не известно о ней.
Тут вопрос в чем, например var _this = this; можно вынести за пределы объекта, но я хочу этот объект клонировать, что уже и сделал, чтоб можно было вызвать два разных объекта:
var bTest = clone(aTest);
aTest.On("#searchquery");
bTest.On("#global-search");
Пока же у меня не запускается вторая версия, что происходит тот конфликт о котором я писал выше. Спасибо за ваше время. |
Я так подумал - не буду вас заморачивать, и написал два объекта, каждый под свой случай немного подправил. Вообще вопрос интересный для меня, но не хочется и вас грузить.
Спасибо за внимание. |
| Часовой пояс GMT +3, время: 12:11. |