Javascript JS仍然引用已删除的类
我有一个元素,它是一个Javascript JS仍然引用已删除的类,javascript,jquery,html,Javascript,Jquery,Html,我有一个元素,它是一个.collapsed类,单击该类后,jQuery函数将删除该类并添加.expanded 在删除.collapsed后单击元素时,它仍然运行我创建的函数 HTML <div class="collapsed"> Some content that will be changed </div> 您需要使用,否则当代码$('.collapsed')时,选择器只计算一次。单击(expandItem)之后对dom结构所做的更改不会影响已添加的处理程序 当您使
.collapsed
类,单击该类后,jQuery函数将删除该类并添加.expanded
在删除.collapsed
后单击元素时,它仍然运行我创建的函数
HTML
<div class="collapsed">
Some content that will be changed
</div>
您需要使用,否则当代码$('.collapsed')时,选择器只计算一次。单击(expandItem)执行代码>之后对dom结构所做的更改不会影响已添加的处理程序
当您使用事件委派时,传递的选择器将在事件发生时延迟计算,因此将对注册后所做的更改作出反应
function expandItem() {
$(this).addClass("expanded");
$(this).removeClass("collapsed");
return false;
}
$(document).on('click', '.collapsed', expandItem);
使用$(document.ready(function(){$('.collapsed')。单击(expandItem);})代码>为什么代码不能运行?$('.collapsed')。单击(expandItem)代码>行的意思是“找到类“折叠”的所有项目,并给它们这个点击处理程序:…”。无论您是否在以后的某个时间删除该类,都不会对您先前绑定的click处理程序产生任何影响。@TamilSelvan我确实准备好了文档行,只是没有将其添加到上面的代码中。请原谅我的简短,我会更新帖子的。
function expandItem() {
$(this).addClass("expanded");
$(this).removeClass("collapsed");
return false;
}
$(document).on('click', '.collapsed', expandItem);