jquery单击绑定不起作用,当我使用它

jquery click bind not working when I use this

本文关键字:单击 绑定 不起作用 jquery      更新时间:2023-09-26

所以我正在尝试制作一个在单击标题时折叠起来的部分。如果我使用以下部分,它可以工作,但显然将所有部分折叠起来,而不仅仅是单击:

$(".foldUpSection").find(".header").click(function()
{
    $(".foldUpSection").find(".foldMeUp").slideToggle();
});

我把它换成了

$(".foldUpSection").find(".header").click(function()
{
    $(this).find(".foldMeUp").slideToggle();
});

但这无济于事。我是否错过了为什么它没有在点击时传递这个的东西?

这是 HTML

<div class="foldUpSection">
    <span class="header">Unprocessed EDIs</span>
    <div id="unprocessedEdi" class="foldMeUp">
    </div>
</div>

在这种情况下,this指的是$(".foldUpSection").find(".header")

find() 函数查找选择器的后代,并且$(".foldUpSection").find(".header")没有具有 foldMeUp 类的后代。

如果 DOM 结构不是一成不变的(因此您可能在 .header.foldMeUp 之间有其他元素,请使用以下命令:

$(".foldUpSection").find(".header").click(function()
{
    $(this).closest(".foldUpSection").find(".foldMeUp").slideToggle();
});

这是小提琴:http://jsfiddle.net/jEgK4/

使用 $(this) 和 .find() 会让你定位错误的元素。

使用.next().siblings()find()搜索孩子,foldmeup是兄弟姐妹

   $(this).siblings(".foldMeUp").slideToggle();

 $(this).next(".foldMeUp").slideToggle();

演示

.find() 的文档