首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在KeyPress不工作的jQuery上隐藏/显示DIV

在KeyPress不工作的jQuery上隐藏/显示DIV
EN

Stack Overflow用户
提问于 2018-06-14 06:40:19
回答 1查看 258关注 0票数 0

搞不懂为什么jQuery能理解我的逻辑,但在按键时选择的DIVs上的show()hide()不起作用(但在页面加载时却能起到hide()的作用)。

下面是我的PHP页面末尾的脚本。

代码语言:javascript
复制
<script>
jQuery(function(){

        $("#resultset_2").hide();
        $("#resultset_3").hide();

// this is working -- `#resultset_2` and `#resultset_3`
// are both set to "display:none;" on page load

    $(document).keydown(function (e) {

    var keyCode = e.keyCode || e.which,
      arrow = {left: 37, up: 38, right: 39, down: 40 };

    switch (keyCode) {
    case arrow.left:
      // tbd
    break;
    case arrow.up:
      // tbd
    break;
    case arrow.right:
      // tbd
    break;

    case arrow.down:

    if($('#resultset_1').is(':visible')){

        alert('visible');
        $("#resultset_1").hide();
        $("#resultset_2").show();

    }

    if($('#resultset_2').is(':visible')){

        $("#resultset_2").hide();
        $("#resultset_3").show();

    }
    if($('#resultset_3').is(':visible')){

        $("#resultset_3").hide();
        $("#resultset_1").show();

    }
    break;
    }
    });
});
</script>

按键功能正常工作,所以我知道这不是问题。当我按下键盘上的down时,我得到一个警告'visible'弹出窗口,指出$resultset_1是可见的。

但是在那之后什么也没有发生,在我的情况下,jQuery会忽略$("#resultset_1").hide();$("#resultset_2").show();

我尝试过一些变体,比如

代码语言:javascript
复制
   if($('#resultset_1').is(':visible')){
        alert('visible');
        $('#resultset_1').css('display','none');
    }

具有相同的结果(警告,但忽略div更改)

为什么它不能正常工作?我如何修复它以按照定义工作?使用精简的jQuery v3.3.1

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-14 06:47:23

在带有警报的if语句中,取消隐藏#resultset_2,因此执行第二个if语句,再次隐藏#resultset_2,并显示#resultset_3。下一条if语句也会发生同样的事情,隐藏#resultset_3并再次显示#resultset_1。您应该使后两个if语句成为else if语句。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50847292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档