2014-09-13 65 views
0

我寫了一個代碼,其中一個div出現,如果有人徘徊其他div,我添加了5秒的延遲,所以顯示的div保留,但問題是,我希望它留下,直到下一個鏈接徘徊。意思是我需要第一個div被消失,如果第二個鏈接懸停。jquery下一個鏈接或div徘徊延遲

這裏是我現有的代碼JS小提琴鏈接: http://jsfiddle.net/np87e/880/

$(document).ready(function() { 
$("#theLink3").hover(
    function() { 
     $("#theDiv3").slideDown(); 
    }, 
    function() { 
     $("#theDiv3").delay(5000).slideUp(); 
    } 
); 
$("#theLink4").hover(
    function() { 
     $("#theDiv4").slideDown(); 
    }, 
    function() { 
     $("#theDiv4").delay(5000).slideUp(); 
    } 
); 
}); 

回答

0

你需要調用的div效果基本show()在接下來的元素的mouseenter回調

$("#theLink3").hover(function() { 
    $("#theDiv4").stop(true, true).slideUp(); 
    $("#theDiv3").slideDown(); 
}, function() { 
    $("#theDiv3").delay(5000).slideUp(); 
}); 

演示:Fiddle

注意:我不喜歡像你所做的那樣寫個人懸停處理程序。所以

<a href="" id="theLink3" class="trigger">hover here</a> 
<div id="theDiv3" class="target">this is the div</div> 
<hr /> 

<a href="" id="theLink4" class="trigger">hover here</a> 
<div id="theDiv4" class="target">this is the div</div> 
<hr /> 

然後

jQuery(function ($) { 
    var $targets = $('.target'); 
    $(".trigger").hover(function() { 
     var $target = $(this).next('.target').stop(true, true).slideDown(); 
     $targets.not($target).stop(true, true).slideUp(); 
    }, function() { 
     $(this).next('.target').stop(true, true).delay(5000).slideUp(); 
    }); 
}); 

演示:Fiddle

+0

@ RokoC.Buljan是... :( – 2014-09-13 04:12:50

+0

基本上我一無所知的Jquery或Javascript我只是這些語言中的風扇等等我看教程和問題,並最終編寫我需要的代碼。我不知道我是否寫冗長或錯誤代碼..大聲笑..你的第一個代碼適合我雖然..我試圖學習所有這些.. 。 – 2014-09-13 09:46:55