Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как сделать в объекте ссылку на объект - контейнер? (https://javascript.ru/forum/events/43714-kak-sdelat-v-obekte-ssylku-na-obekt-kontejjner.html)

hrustbb 17.12.2013 15:01

Как сделать в объекте ссылку на объект - контейнер?
 
есть такой код:
function photo(jObj){
	this.img = jObj.find('.photo-site-prv');
	var src = this.img.attr('src').split('/');
	this.file = src[3];
	this.jcrop_api = null;
	this.photo_id = this.img.attr('photo_id');
	this.x1 = this.img.attr('x1');
	this.x2 = this.img.attr('x2');
	this.y1 = this.img.attr('y1');
	this.y2 = this.img.attr('y2');
	this.scale_2 = this.img.attr('scale_2');
}

photo.prototype.initialize = function(){
		this.img.container = this;
		this.img.load(function(){
			this.container.jcrop_api = $.Jcrop(this);
		});
};


но в строке
this.img.container = this;
возникает ошибка. Как сделать в объекте ссылку на объект - контейнер?

danik.js 17.12.2013 17:43

Цитата:

Сообщение от hrustbb
возникает ошибка.

Какая ошибка? Подобный код должен работать.

Skipp 17.12.2013 17:56

Не пробовали использовать bind?

danik.js 17.12.2013 18:43

Цитата:

Сообщение от hrustbb
this.container.jcrop_api = $.Jcrop(this);

Вероятно ошибка возникает здесь. Так как this указывает не на img (jQuery-объект), а на DOM-элемент.

Вариант:
var container = this;
this.img.load(function(){
    container.jcrop_api = $.Jcrop(this);
});


Часовой пояс GMT +3, время: 12:12.