Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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 为什么show()只在瞬间起作用?_Javascript_Jquery - Fatal编程技术网

Javascript 为什么show()只在瞬间起作用?

Javascript 为什么show()只在瞬间起作用?,javascript,jquery,Javascript,Jquery,我正在尝试让列表项在单击时显示。当我使用hide()方法时,它们一开始是隐藏的,但是当我添加show()方法时,它只工作大约一毫秒。不确定是否是因为它总是默认回到原始设置?我基本上只想点击主列表 单击链接时,整个页面将刷新。这意味着您的代码将再次运行: $('.sublist').hide(); 您应该做的是防止出现如下默认行为: $(".mainlist").on('click', function(event) { $('.sublist').show();

我正在尝试让列表项在单击时显示。当我使用hide()方法时,它们一开始是隐藏的,但是当我添加show()方法时,它只工作大约一毫秒。不确定是否是因为它总是默认回到原始设置?我基本上只想点击主列表


  • 单击链接时,整个页面将刷新。这意味着您的代码将再次运行:

    $('.sublist').hide();
    
    您应该做的是防止出现如下默认行为:

    $(".mainlist").on('click', function(event) {
          $('.sublist').show();
          event.preventDefault();
        });
    

    单击链接时,整个页面将刷新。这意味着您的代码将再次运行:

    $('.sublist').hide();
    
    您应该做的是防止出现如下默认行为:

    $(".mainlist").on('click', function(event) {
          $('.sublist').show();
          event.preventDefault();
        });
    

    问题是,当您单击那些
    a
    元素时,页面会被重新加载,因为它们上有
    href=“”
    。因此div开始是隐藏的,然后单击显示它们,但随后页面刷新,它们又回到隐藏状态(因为这是新加载页面上的默认状态,这要归功于页面就绪回调中的
    hide
    调用)

    如果不希望跟踪这些链接,请通过jQuery处理程序中的
    preventDefault
    (或
    returnfalse
    )单击它们时阻止默认操作:

    $(function() {
      $('.sublist').hide();
        $(".mainlist").on('click', function(e) {
          e.preventDefault();
          $('.sublist').show(); 
        }); 
    })
    
    实例:

    $(函数(){
    $('.sublist').hide();
    $(“.mainlist”)。在('click',函数(e){
    e、 预防默认值();
    $('.sublist').show();
    }); 
    })
    
    

    问题在于,当您单击那些
    a
    元素时,页面会被重新加载,因为它们上面有
    href=“”
    。因此div开始是隐藏的,然后单击显示它们,但随后页面刷新,它们又回到隐藏状态(因为这是新加载页面上的默认状态,这要归功于页面就绪回调中的
    hide
    调用)

    如果不希望跟踪这些链接,请通过jQuery处理程序中的
    preventDefault
    (或
    returnfalse
    )单击它们时阻止默认操作:

    $(function() {
      $('.sublist').hide();
        $(".mainlist").on('click', function(e) {
          e.preventDefault();
          $('.sublist').show(); 
        }); 
    })
    
    实例:

    $(函数(){
    $('.sublist').hide();
    $(“.mainlist”)。在('click',函数(e){
    e、 预防默认值();
    $('.sublist').show();
    }); 
    })
    
    
    有两个问题:

    首先,您有直接嵌套在
    li
    元素中的
    li
    元素-如果您想要一个“子列表”,您需要将子项包装在
    ul
    中(请参见下面修改的代码)

    其次,正在跟踪链接,这导致页面刷新。如果您只想显示
    子列表
    项,则应在事件中使用(请参阅下面的修改代码)

    //没有冲突安全文档准备就绪
    jQuery(函数($){
    $('.sublist').hide();
    //单击事件接受“事件”的一个参数
    $(“.mainlist”)。在('click',函数(e){
    //阻止默认的“单击”操作(即加载链接指向的url)
    e、 预防默认值();
    $('.sublist').show();
    });
    })
    
    
    有两个问题:

    首先,您有直接嵌套在
    li
    元素中的
    li
    元素-如果您想要一个“子列表”,您需要将子项包装在
    ul
    中(请参见下面修改的代码)

    其次,正在跟踪链接,这导致页面刷新。如果您只想显示
    子列表
    项,则应在事件中使用(请参阅下面的修改代码)

    //没有冲突安全文档准备就绪
    jQuery(函数($){
    $('.sublist').hide();
    //单击事件接受“事件”的一个参数
    $(“.mainlist”)。在('click',函数(e){
    //阻止默认的“单击”操作(即加载链接指向的url)
    e、 预防默认值();
    $('.sublist').show();
    });
    })
    
    

    由于您使用的是锚定
    标记,并且有一个空的
    href
    属性,因此默认行为应该是在锚定单击时重定向页面。解决方法是在单击回调中使用
    href=“javascript:void(0)”
    事件.preventDefault()

    $(函数(){
    $('.sublist').hide()
    $(“.mainlist”)。在('click',函数(e){
    /*这里,防止重定向*/
    如果(e){e.preventDefault()}
    $('.sublist').show()
    })
    })
    
    

    由于您使用的是锚定
    标记,并且有一个空的
    href
    属性,因此默认行为应该是在锚定单击时重定向页面。解决方法是在单击回调中使用
    href=“javascript:void(0)”
    事件.preventDefault()

    $(函数(){
    $('.sublist').hide()
    $(“.mainlist”)。在('click',函数(e){
    /*这里,防止重定向*/
    如果(e){e.preventDefault()}
    $('.sublist').show()
    })
    })
    
    

    这部分代码:

    $(".mainlist").on('click', function() {
      $('.sublist').show(); 
    });
    
    指示仅在单击事件期间显示列表

    为什么不改用fadeIn()effects函数呢

    $(“#出现”).hide();
    $(“#单击我”)。单击(函数(){
    $(“#出现”).fadeIn(“慢”,函数(){
    });
    });
    
    
    点击这里