Add to cart 我想使用函数更新我的购物车: function AddtoCart() { alert("Adde-6ren">
gpt4 book ai didi

javascript - 如何通过类名分配一个javascript函数

转载 作者:数据小太阳 更新时间:2023-10-29 05:09:47 25 4
gpt4 key购买 nike

我有多个按钮(由 php 生成)用于购物车应用程序:

<button class="addtocart" id="<?php echo $code; ?>"> 
<span id="addtocartbutton">Add to cart</span>
</button>

我想使用函数更新我的购物车:

function AddtoCart() {
alert("Added!");
}

稍后,我想找到由调用它的按钮创建的 ID($code)(也不知道该怎么做,但也许这是另一个问题)。所以我尝试了这个:

document.getElementsByClassName("addtocart").addEventListener("click", AddtoCart());

但它不起作用。它正在使用 onclick 工作,但我知道通过创建 EventListener 来实现它的正确方法。另外,我不能在 jQuery 中使用 on() 函数,因为我被迫使用没有它的 jQuery 1.6 版。

我看过https://stackoverflow.com/a/25387857/989468而且我不能真正将它分配给 p 标签的父级,因为我显然不希望 p 标签中的其他元素被分配此功能。

最佳答案

虽然给出的答案是正确的,但还有另一种方式:Event Delegation

将监听器附加到一个单一的东西上,在本例中是文档 body,然后检查实际点击的是哪个元素:

警告:即时输入:未经测试

// Only needed *once* and items may be added or removed on the fly without
// having to add/remove event listeners.
document.body.addEventListener("click", addtoCart);

function addtoCart(event) {
var target = event.target;

while(target) {
if (target.classList.contains('addtocart')) {
break;
}
// Note: May want parentElement here instead.
target = target.parentNode;
}

if (!target) {
return;
}

var id = target.dataset.id;
alert(id + " added!");
}

关于javascript - 如何通过类名分配一个javascript函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35113278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com