javascript - 特定元素上的 Jquery .map 点击事件
问题描述
你好,我有一个这样的数组:
let Array1 = [
{name:"try1", id:"id1", symbol:"symbol1"},
{name:"try2", id:"id2", symbol:"symbol2"},
{name:"try3", id:"id3", symbol:"symbol3"},
{name:"try4", id:"id4", symbol:"symbol4"},
{name:"try5", id:"id5", symbol:"symbol5"}
]
我想让他们每个人都成为一个按钮。我可以点击每一个。为此,我使用 .map Funnction (我不确定这是最好的选择)
Array1.map(data => $(".check").html(`<a id="${data.id}" class="btn btn-info" href="#" role="button">${data.id}</a>`))
直到现在我得到 5 个按钮。1 按钮每个对象与按钮的 id。
问题从这里开始:我试图在这个按钮上捕捉一个点击事件。我做不到。。
我试过了:
(`${data.id}`).click(e => console.log("click))
我很乐意寻求帮助或以任何其他方式获得相同的结果。谢谢!!
解决方案
您可以简单地将forEach函数与事件委托一起用于动态添加的buttons
.
您还需要使用 jQuery .append()函数来添加类中的所有按钮.check
。使用.html
将替换最后一个仅显示最后一个按钮。
运行下面的代码段。Clicks
正在研究每一个。
let Array1 = [{
name: "try1",
id: "id1",
symbol: "symbol1"
},
{
name: "try2",
id: "id2",
symbol: "symbol2"
},
{
name: "try3",
id: "id3",
symbol: "symbol3"
},
{
name: "try4",
id: "id4",
symbol: "symbol4"
},
{
name: "try5",
id: "id5",
symbol: "symbol5"
}
]
//Loop through the array1
Array1.forEach(function(data) {
//Append Each button
$(".check").append(`<a id="${data.id}" class="btn btn-info myBtn" href="#" role="button">${data.id}</a><br>`)
})
//Click function on buttons
$(document).on('click', '.myBtn', function() {
//get the id
let getId = $(this).attr('id')
//do something
//Console
console.log(getId)
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="check">
</div>
推荐阅读
- jmeter - 并发线程组
- neural-network - 解释导致ANN过拟合的学习率数据类型
- visual-studio-code - 错误代码尝试从不存在的源复制
- github - 恢复对主分支 git 所做的更改
- node.js - 如何修复未定义且 arg 未读取拆分中的正确行?
- swift - 在 SwiftUI 视图中更改 UIColor 的不透明度
- python - 如何在 Azure ML 上部署 EfficientNet?
- python - 根据键值聚合列表中的字典
- php - chmod() 导致 Whmcs 更新失败:不允许操作
- react-native - 如何在文本字段中添加动态 onfocus / input ref?