gpt4 book ai didi

javascript - 为什么我不能切换类(class)?

转载 作者:行者123 更新时间:2023-12-01 01:53:27 26 4
gpt4 key购买 nike

我正在处理一个小的待办事项列表,您可以添加新任务,然后当您单击 li 元素时,它应该添加 2 个类并删除 1 个

<ul id="myUL" class="todoList">
<li class='todoList card border-primary'>my li</li>
</ul>

这是我用于切换类的 js 代码

$( "#myUL" ).children().on("click",function() {  
$( this ).toggleClass( "checked" );
$( this ).toggleClass( "border-primary" );
$( this ).toggleClass( "border-success" );
});

我将它包含在底部 bootstrap.min 和 jquery-3.3.1.min js 文件中,因为它依赖于 bootstrap。

但我的代码仅适用于第一个元素。我该如何解决它?

最佳答案

这只适用于第一个元素,因为您只运行一次 JS 代码来附加事件监听器。因此,只有第一个元素附加了“click”事件监听器。您可以向父级添加一个监听器,然后从那里处理它。或者,替代方法是删除所有 li 的所有事件监听器,然后使用您现在拥有的代码重新添加它们。这不是一个好的做法,但可以完成工作。这是 w3schools 的示例

// Add a "checked" symbol when clicking on a list item
var list = document.querySelector('ul');
list.addEventListener('click', function(ev) {
if (ev.target.tagName === 'LI') {
ev.target.classList.toggle('checked');
}
}, false);

来源:https://www.w3schools.com/howto/howto_js_todolist.asp

关于javascript - 为什么我不能切换类(class)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49845940/

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