Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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
jQuery:slideDown()将幻灯片备份_Jquery_Html_Slidedown - Fatal编程技术网

jQuery:slideDown()将幻灯片备份

jQuery:slideDown()将幻灯片备份,jquery,html,slidedown,Jquery,Html,Slidedown,我遇到了一个难以再现的问题,即在向下滑动()后,大约50%的时间向后滑动()。jQuery代码非常简单: $( document ).ready(function() { var slideOptions = { duration: 500, easing: 'linear' }; $( 'li.navtitle' ).mouseenter(function() { $( this ).next().slideDown(); return false; });

我遇到了一个难以再现的问题,即在向下滑动()后,
  • 大约50%的时间向后滑动()。jQuery代码非常简单:

    $( document ).ready(function() {
    var slideOptions = {
        duration: 500,
        easing: 'linear'
    };
    
    $( 'li.navtitle' ).mouseenter(function() {
        $( this ).next().slideDown();
        return false;
    });
    $( 'ul.navunit' ).mouseleave(function() {
        $( this ).find( 'li.navcontent' ).delay(800).slideUp();
        return false;
    });
    });
    
    以下是HTML:

    <ul id="navigation">
      <li class="navtop">   
        <ul class="navunit">
          <li class="navtitle unselectable" unselectable="on">TITLE</li>
          <li class="navcontent"><p class="textcontent">CONTENT HERE</li>
        </ul>
      </li>
    <!-- Some more navtop/navunits... -->
    </ul>
    
      • 标题
      • 此处的内容

    如前所述,这种方法大约有50%的时间有效。但是,在许多情况下,当鼠标位于navunit内时,navcontent li会滑动()


    有人知道我做错了什么吗?

    这可能是因为它触发了两次。尝试将以下内容添加到函数末尾:

        $(this).unbind("mouseenter");
    $(this).unbind("bind");
    $(this).die();
    

    看起来您需要在动画中添加一个
    stop()
    。下面是JS代码,但这里有一个指向JSFIDLE的链接,可以看到它的实际应用


    我可能应该注意到,返回值为false;是我试图解决的问题,但它不起作用,应该从代码中删除。我打赌核心问题是
    .delay()
    。如果将鼠标移到元素外部,并在800毫秒内再次移回,则延迟计时器将触发滑块。
    $( document ).ready(function() {
    var slideOptions = {
        duration: 500,
        easing: 'linear'
    };
    
    $( 'li.navtitle' ).mouseenter(function() {
        $( this ).next().stop().slideDown();
        return false;
    });
    $( 'ul.navunit' ).mouseleave(function() {
        $( this ).find( 'li.navcontent' ).stop().delay(800).slideUp();
        return false;
    });
    });