jQuery : 如何在新构造的模式中启用 jQuery 代码到 运行
jQuery : How to enable jQuery code to run within freshly constructed Modal
下面有一个常用的Modal
<div class="modal fade" id="OptionModal" >
<div class="modal-dialog">
<div class="modal-content text-center">
<div>
<button type="button" style="margin:10px 10px" class="close" data-dismiss="modal">×</button>
</div>
<div align="center" class="text-center modal-header">
<h2 align="center" style="font-weight:500;margin:auto" class="modal-title"></h2>
</div>
<div class="modal-body">
<p align="center" class="modal-price"></p>
<p align="center" class="modal-desc"></p>
<p align="left" style="font-weight:800">Please Choose One from beneath</p>
<table class="table table-striped table-hover">
<thead align="center">
<tr class="table-active">
<td>Option</td>
<td>Price</td>
<td>Add</td>
</tr>
</thead>
<tbody align="center">
</tbody>
</table>
</div>
</div>
</div>
</div>
如您所见,它非常空。
通过以下代码将相关数据放入Modal激活前
$("#OptionModal").find(".modal-title").text(itemN);
$("#OptionModal").find(".modal-desc").text(itemDesc);
$("#OptionModal").find(".modal-price").text("from $"+itemP);
// console.log(itemOpt.length);
$("#OptionModal").find("tbody").empty();
for(let i=0;i<itemOpt.length;i++){
$("#OptionModal").find("tbody").append(
`<tr><td>${itemOpt[i].option_name}</td><td>$${(Number(itemOpt[i].option_price)+Number(itemP)).toFixed(2)}</td>
<td><button class="addcart2 btn btn-success" ><i class="fas fa-arrow-right" ></i></button></td></tr>`
);
}
问题是 class="addcart2" 的按钮没有响应下面的 jQuery 代码。
$(".addcart2").click(function(){
console.log("ok");
});
所有 jQuery 代码都包含在 $(document).ready();
我怀疑 Modal 具有独立于文档范围的范围。
请问有人能告诉我这是怎么回事吗?
此 jQuery 语法在文档准备好后无法识别附加元素。只需使用以下语法:
$(document).on('click', '.addcart2', function(){
//do something amazing
});
下面有一个常用的Modal
<div class="modal fade" id="OptionModal" >
<div class="modal-dialog">
<div class="modal-content text-center">
<div>
<button type="button" style="margin:10px 10px" class="close" data-dismiss="modal">×</button>
</div>
<div align="center" class="text-center modal-header">
<h2 align="center" style="font-weight:500;margin:auto" class="modal-title"></h2>
</div>
<div class="modal-body">
<p align="center" class="modal-price"></p>
<p align="center" class="modal-desc"></p>
<p align="left" style="font-weight:800">Please Choose One from beneath</p>
<table class="table table-striped table-hover">
<thead align="center">
<tr class="table-active">
<td>Option</td>
<td>Price</td>
<td>Add</td>
</tr>
</thead>
<tbody align="center">
</tbody>
</table>
</div>
</div>
</div>
</div>
如您所见,它非常空。 通过以下代码将相关数据放入Modal激活前
$("#OptionModal").find(".modal-title").text(itemN);
$("#OptionModal").find(".modal-desc").text(itemDesc);
$("#OptionModal").find(".modal-price").text("from $"+itemP);
// console.log(itemOpt.length);
$("#OptionModal").find("tbody").empty();
for(let i=0;i<itemOpt.length;i++){
$("#OptionModal").find("tbody").append(
`<tr><td>${itemOpt[i].option_name}</td><td>$${(Number(itemOpt[i].option_price)+Number(itemP)).toFixed(2)}</td>
<td><button class="addcart2 btn btn-success" ><i class="fas fa-arrow-right" ></i></button></td></tr>`
);
}
问题是 class="addcart2" 的按钮没有响应下面的 jQuery 代码。
$(".addcart2").click(function(){
console.log("ok");
});
所有 jQuery 代码都包含在 $(document).ready(); 我怀疑 Modal 具有独立于文档范围的范围。 请问有人能告诉我这是怎么回事吗?
此 jQuery 语法在文档准备好后无法识别附加元素。只需使用以下语法:
$(document).on('click', '.addcart2', function(){
//do something amazing
});