当我点击按钮时,它会预先形成一个功能,我现在正试图将其命名为:“”,按下按钮时输入。
我在标签内添加了name =“item1”,但这并没有产生预期的结果。
<img onclick="addbeat()" name="item1" src="button.png"/>
<script>
function addbeat() {
simpleCart.add({
name: "",
price: .99
});
}
</script>
答案 0 :(得分:3)
您正在使用某个活动,因此您可以使用this
关键字。
simpleCart.add({
name: this.name,
price: .99
});
另外,我强烈建议远离内联活动。它很乱,导致无法读取的代码。使用事件处理程序!
var x = document.getElementById("imgTag"); //add id to HTML element
x.addEventListener("click", addbeat, false);
答案 1 :(得分:1)
为清晰起见而更新
这里有2个选项。如果您使用内联事件处理程序,则可以将事件对象传递给单击处理程序并访问使用event.target
单击的图像,如下所示:
<img onclick="addbeat(event)" name="item1" src="button.png"/>
<script>
function addbeat(event) {
simpleCart.add({
name: event.target.name,
price: .99
});
}
</script>
一个更好的选择(如周围的讨论中所指出的)是以编程方式附加您的点击处理程序 - 此时您可以使用event.target
或this
。
<img id="anImage" onclick="addbeat(event)" name="item1" src="button.png"/>
<script>
function addbeat() {
simpleCart.add({
name: this.name,
price: .99
});
}
document.getElementById('anImage').onclick = addbeat;
</script>
答案 2 :(得分:0)
我不确定我是否理解你的问题,但是:
<img onclick="addbeat(this.name)" name="item1" src="button.png"/>
<script>
function addBeat(name)
{
simpleCart.add({
name: name,
price: .99
});
}
</script>
这有帮助吗?