Я пишу библиотеку, которая создает несколько элементов внутри элемента-оболочки и хранит все это и его функции внутри объекта JavaScript. Я пытаюсь избежать идентификаторов, так как может быть несколько экземпляров этого объекта на странице. У меня есть функция, позволяющая пользователю изменять некоторые элементы, и мне нужна помощь, чтобы выяснить, как добавить изображение.
Вот функция:
foo.prototype.rebrand = function(line1, line2, imgUrl){
this.branding.childNodes[1].innerHTML = line1;
this.branding.childNodes[2].innerHTML = line2;
var brandImage = document.createElement('img');
brandImage.onload = function(){
this.branding.childNodes[0].appendChild(brandImage);
//this won't work
}
brandImage.src = imgUrl;
}
Вы бы позвонили foo.rebrand('hello', 'world', 'example.png')
К сожалению, внутри функции .onload
, this
будет ссылаться на сам элемент изображения. Итак, как я могу передать this.branding.childNodes[0]
в изображение при загрузке?
Если я напишу функцию так:
brandImage.onload = function(anything){
this.branding.childNodes[0].appendChild(brandImage);
//this won't work
}
, тогда anything
будет просто ссылкой на событие onload
.
Изменить, чтобы добавить jsFiddle:
http://jsfiddle.net/KtJd6/