1

当我将鼠标悬停在带有类专辑的 div 上时,ajax 会加载并显示幻灯片 div。然后当我离开专辑 div 时,它会隐藏幻灯片 div。正是我想要的。问题是当我将鼠标悬停在专辑 div 上并在 ajax 加载之前离开时,它会在我没有悬停在专辑 div 上时加载。如果我没有将鼠标悬停在 div 上,我怎么能拥有它,无论如何幻灯片 div 都不会显示?

查询

$('.album').hover(function(){
    var id = $(this).attr('id');

    var url = "albumphotos.php";
    $.post(url, {contentVar: id}, function(data){
        $("#album_slide").html(data).show();

    });
    }, function(){
    $("#album_slide").html("").hide();
});
4

3 回答 3

4

离开相册时尝试中止 ajax

$('.album').hover(function(){
    var id = $(this).attr('id');

    var url = "albumphotos.php";
    var ajax = $.post(url, {contentVar: id}, function(data){
        $("#album_slide").html(data).show();
        $(this).removeData('slideajax');
    });
    $(this).data('slideajax', ajax);
}, function(){
    var ajax = $(this).data('slideajax');
    if(ajax){
        $(this).removeData('slideajax');
        ajax.abort();
    }

    $("#album_slide").html("").hide();
});
于 2013-08-14T04:26:04.107 回答
1
if( $('#elem').is(":hover")){
 //then show slide div
}

检查您是否在悬停

于 2013-08-14T04:27:45.577 回答
0

将鼠标悬停在元素上时切换一个类,并根据相册是否可见有条件地显示专辑幻灯片。

$('.album').mouseenter(function(){
    var self = this;
    var url = "albumphotos.php";
    $(self).addClass("albumShown");
    $.post(url, {contentVar: self.id}, function(data){
        if ($(self).is('.albumShown')) {
            $("#album_slide").html(data).show();
        }
    });
}).mouseleave(function() {
    $("#album_slide").html("").hide();
    $(this).removeClass("albumShown");
});
于 2013-08-14T04:32:50.737 回答