jQuery向下键下一步,下一步,父问题

jQuery向下键下一步,下一步,父问题,jquery,next,keydown,Jquery,Next,Keydown,再次回到我的复仇女神(jQuery/JS) 基本上我有一堆div,在每个div中我有一个隐藏的div,单击时可以切换。这个很好用 <div class="parent"> <div class="article-holder"> <a href=""class="article">link</a> <div class="hidden">hidden content</div>

再次回到我的复仇女神(jQuery/JS)

基本上我有一堆div,在每个div中我有一个隐藏的div,单击时可以切换。这个很好用

<div class="parent">
    <div class="article-holder">
        <a href=""class="article">link</a>
        <div class="hidden">hidden content</div>
    </div>

    <div class="article-holder">
        <a href=""class="article">link</a>
        <div class="hidden">hidden content</div>
    </div>

    <div class="article-holder">
        <a href=""class="article">link</a>
        <div class="hidden">hidden content</div>
    </div>

    <div class="article-holder">
        <a href=""class="article">link</a>
        <div class="hidden">hidden content</div>
    </div>
</div>
我现在决定让用户能够使用光标点击下一步:

$(document).keydown(function(e){
    switch (e.which){
    case 39:
    $(this).parent('.parent').closest('.article-holder').next('.hidden').slideToggle();
    break;
    }
});

这是我不能去工作的部分。我尝试了多种方法,但我就是找不到正确的光标来切换下一个隐藏分区。

要实现这一点,您需要使用
addClass()
removeClass()
.article holder
元素

  • 使用
    .not($(this).next('.hidden'))
    避免在next
    .hidden中切换

  • 使用
    $(“.article holder.opened”)
    捕获打开的文章。然后使用
    .next(“.article holder”)。查找(“.article”)。触发(“单击”)
    触发单击/切换操作

在下一个代码中,我添加了名为opened的/removeClass。。压榨

$(.parent”)。在功能(e)上(“单击“,.article”){
e、 预防默认值();
美元(“.article holder”).removeClass(“打开”);
$(“.hidden”).not($(this.next('.hidden')).hide(“fast”);
$(此).closest(“.article holder”).addClass(“已打开”)
$(this).next('.hidden').slideToggle(“fast”);
});
//我现在决定让用户能够使用光标点击下一步:
$(窗口)。打开(“向下键”,函数(e){
e=e.which | e.keyCode;
开关(e){
案例37:
if($(“.article holder.opened”).长度){
如果($(“.article holder.opened”).index()!==($(“.article holder”).length)){
$(.article holder.opened”).prev(.article holder”).find(.article”).trigger(“单击”);
}
}否则{
$(“.article holder:eq(“+($(.article holder”).length-1+”>.article”).trigger(“单击”);
}
打破
案例39:
if($(“.article holder.opened”).长度){
如果($(“.article holder.opened”).index()!==$(“.article holder”).length-1){
$(“.article holder.opened”).next(“.article holder”).find(“.article”).trigger(“单击”);
}
}否则{
$(“.article holder:eq(0)>.article”)。触发器(“单击”);
}
打破
}
});
。隐藏{
显示:无;
}
.物品持有人{
背景:红色;
}

隐藏内容
隐藏内容
隐藏内容
隐藏内容

谢谢您的回复。但按键是不起作用的部分。在你的片段中不起作用?抱歉@Paul我误解了问题,但答案更新了now@Paul我的网络连接真的很差,这就是我花了很长时间更新答案的原因。。现在检查答案太棒了,你答对了。非常感谢你的帮助:我完全欢迎你@Paul。。祝你今天愉快:-)
$(document).keydown(function(e){
    switch (e.which){
    case 39:
    $(this).parent('.parent').closest('.article-holder').next('.hidden').slideToggle();
    break;
    }
});