1

クラス アルバムを含む div にカーソルを合わせると、ajax が読み込まれ、スライド div が表示されます。次に、アルバム div を離れると、スライド div が非表示になります。まさに私が欲しいもの。問題は、アルバム div にカーソルを合わせて ajax が読み込まれる前に離れると、アルバム div にカーソルを合わせていないときに読み込まれます。div の上にカーソルを置いていない場合、スライド div が何があっても表示されないようにするにはどうすればよいですか?

Jクエリ

$('.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 に答える
0

カーソルを合わせたときに要素のクラスを切り替え、アルバムが表示されているかどうかに応じて、album_slide を条件付きで表示します。

$('.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 に答える