首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >来自多个html按钮的一个javascript函数

来自多个html按钮的一个javascript函数
EN

Stack Overflow用户
提问于 2018-10-06 06:59:54
回答 1查看 47关注 0票数 0

奇怪的问题,但我有一个在画布上绘制的javascript函数。我在HTML上创建了使用该函数的按钮。我有多个具有不同图像源的按钮,我想要将其用于一个功能,而无需多次重复该功能,只需更改imgsrc即可。我试过给按钮分配I,但你不应该有多个I。我尝试使用类,但似乎不起作用。使用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;
}
EN

回答 1

Stack Overflow用户

发布于 2018-10-06 07:27:05

我建议您在按钮上创建自定义指令来处理单击事件,因为它是重复的任务。你可以添加像"data-img- path“这样的自定义属性,而不是使用隐藏变量来传递图像路径。

例如:

<md-button data-load-avatar style="border: 3px solid black;" data-image-path="www.website.com/image1.png"  />

这里的"data- load -avatar“是一个自定义指令,您可以在其中添加单击事件并读取属性"data- image - path”,并在加载画布中的图像路径中使用此图像路径。通过这种方式,你的代码也将是干净的和可维护的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52674240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档