我有一个简单的.slideDown函数:

$globalTabs.find('.seeMore a').live("click", function(){
     $globalTabs.find(".allTabs").slideDown('slow');
 });


当用户单击<a>中的.allTabs时,.allTabs会执行.slideUp

我想做的是,如果用户没有单击.allTabs中的任何内容,并且鼠标不再位于.allTabs中,则计时器启动以等待x时间,然后执行.slideUp。此外,如果鼠标在.allTabs触发之前再次进入.slideUp-则计时器停止并在鼠标移出.allTabs时重置

不确定如何处理。任何帮助,将不胜感激。

基本标记:

<div class="allTabs">
   <a href="#">link 1</a>
   <a href="#">link 2</a>
   <a href="#">link 3</a>
   <a href="#">link 4</a>
</div>


和:

<li class="seeMore"><a href="#">see more</a></li>

最佳答案

尝试这种方式:

$(function() {
    var $allTabs = $globalTabs.find(".allTabs");
    var timer;
    $globalTabs.find('.seeMore a').live("click", function(){
        $allTabs.slideDown('slow');
    });
    $allTabs.mouseout(function(){
        timer = setTimeout(function() {$allTabs.slideUp()}, 3000);
    });
    $allTabs.mouseover(function() {
        clearTimeout(timer);
    });
});

关于javascript - jQuery slideDown然后在计时器上滑动,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12118292/

10-10 23:00