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, время: 06:18. |