【发布时间】:2022-01-07 06:10:35
【问题描述】:
我用 jquery 为卡片编写了 HTML 标签。我希望在单击每张卡片上的按钮后显示每个项目。但是用我写的代码,没有调用其他按钮的点击事件,只调用了第一张卡片的按钮事件。 这是 HTML 代码:
<body>
<p class="app-title p-5">Products</p>
<div class="row row-cols-1 row-cols-md-4 g-4 m-5" id="productList"></div>
<script>
getProducts();
</script>
</body>
jquery 函数:
function showProducList(product) {
return `
<div id="col" class="col">
<div class="card h-100">
<h5 id="Id" class="productId card-title bg-primary text-white p-3 text-center">${product.id}</h5>
<div class="card-body">
<p id="name" class="productName card-text"><b>${product.name}</b></p>
<p id="price" class="productPrice card-text"><b>${product.price}</b></p>
<button id="btnPrint" class="btnPrint">print</button>
</div>
</div>
</div>
`;}
getProducts() 函数将产品模型发送到 showProducList 函数及其确定。 但问题是这个卡片按钮的点击事件不起作用!
$("#productList").click(function() {
$("#btnPrint").click(function() {
console.log("clicked");
var productId= $(this).parent().prevAll("h5").text();
var productName= $(this).siblings(".productName").text();
var productPrice= $(this).siblings(".productPrice").text();
window.localStorage.setItem("productId", productId);
window.localStorage.setItem("productName", productName);
window.localStorage.setItem("productPrice", productPrice);
showPrintPreview();
});});
【问题讨论】: