Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS仍然引用已删除的类_Javascript_Jquery_Html - Fatal编程技术网

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);