gpt4 book ai didi

javascript - 动态创建的列表上的单击事件

转载 作者:行者123 更新时间:2023-11-28 17:36:19 25 4
gpt4 key购买 nike

我想将事件处理程序添加到动态生成的列表中。我需要防止列表项上的默认操作,而只是控制台日志“单击”。我正在尝试做的一个例子如下:

$("#make-list").click(function() {
var mainList = document.getElementById("the-list");
for(var i = 0; i < 6; i++) {
mainList.innerHTML += "<li class='list-item'><a class='the-list__link' href='https://example.com'>Click ME!</a></li>"
};
})

$(".the-list__link").on("click", function() {
e.preventDefault();
console.log("click");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<button id="make-list">MAKE LIST</button>
<ul id="the-list"></ul>

这些答案:

解释一下,由于.click()事件被委托(delegate),使用.on()方法。我正在这样做。为什么不起作用?

最佳答案

  1. 您实际上并未委托(delegate)点击(应为 $("#the-list").on("click", '.the-list__link')
  2. 您忘记将事件传递给执行 e.preventDefault(); 的函数

$("#make-list").click(function() {
var mainList = document.getElementById("the-list");
for(var i = 0; i < 6; i++) {
mainList.innerHTML += "<li class='list-item'><a class='the-list__link' href='https://example.com'>Click ME!</a></li>"
};
})

$("#the-list").on("click", '.the-list__link', function(e) {
e.preventDefault();
console.log("click");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<button id="make-list">MAKE LIST</button>
<ul id="the-list"></ul>

关于javascript - 动态创建的列表上的单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49075524/

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