Как установить "имя" Javascript при нажатии на ссылку?
Когда я нажимаю кнопку, она выполняет функцию, я пытаюсь сделать так, чтобы имя: "" вводилось при нажатии кнопки.
Я добавил name="item1" внутри тега, но это не дает желаемого результата.
<img onclick="addbeat()" name="item1" src="button.png"/>
<script>
function addbeat() {
simpleCart.add({
name: "",
price: .99
});
}
</script>
3 ответа
Обновление для ясности
У вас есть 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>
Вы используете событие, так что вы можете использовать this
ключевое слово.
simpleCart.add({
name: this.name,
price: .99
});
Кроме того, я настоятельно рекомендую отойти от встроенных событий. Это грязно и приводит к нечитаемому коду. Используйте обработчик событий!
var x = document.getElementById("imgTag"); //add id to HTML element
x.addEventListener("click", addbeat, false);
Я не уверен, что понял ваш вопрос, но:
<img onclick="addbeat(this.name)" name="item1" src="button.png"/>
<script>
function addBeat(name)
{
simpleCart.add({
name: name,
price: .99
});
}
</script>
Это помогает?