Странный вопрос, но у меня есть функция JavaScript, которая рисует на холсте.Я создал кнопки на HTML, который использует эту функцию.У меня есть несколько кнопок с разными источниками изображений, которые я хочу использовать для этой функции, не повторяя ее много раз и просто меняя imgsrc.Я попытался дать идентификаторы кнопки, но у вас не должно быть нескольких идентификаторов.Я пытался использовать классы, но это не сработало.Использование AngularJS.
HTML
<md-button onclick="(new avatarCanvas()).body()" style="border: 3px solid black;"><input class="image" value="www.website.com/image1.png" type="hidden"></md-button>
<md-button onclick="(new avatarCanvas()).hair()" style="border: 3px solid black;"><input class="hair" value="www.website.com/image2.png" type="hidden"></md-button>
<md-button onclick="(new avatarCanvas()).hair()" style="border: 3px solid black;"><input class="hair" value="www.website.com/image3.png" type="hidden"></md-button>
<md-button onclick="(new avatarCanvas()).hair()" style="border: 3px solid black;"><input class="hair" value="www.website.com/image4.png" type="hidden"></md-button>
<md-button onclick="(new avatarCanvas()).hair()" style="border: 3px solid black;"><input class="hair" value="www.website.com/image5.png" type="hidden"></md-button>
JavaScript
var canvas1 = document.getElementById('layer1');
var ctx1 = canvas1.getContext('2d');
var canvas2 = document.getElementById('layer2');
var ctx2 = canvas2.getContext('2d');
var imageObj = new Image();
this.body = function() {
imageObj.onload = function() {
ctx1.drawImage(imageObj, 0, 0, imageObj.width, imageObj.height);
};
imageObj.src = document.getElementsByClassName("image").value;
}
this.hair = function() {
ctx2.clearRect(0, 0, canvas2.width, canvas2.height);
imageObj.onload = function() {
ctx2.drawImage(imageObj, 64.43, 7, imageObj.width, imageObj.height);
};
imageObj.src = document.getElementsByClassName("hair").value;
}