1

このスクリプトを使用して、あるdivのコンテンツを別のdiv内にロードします。

$(function() {
        $('#menu a').click(function(e) {
            e.preventDefault();
            var h = $(this).attr('href');
            $('#aqui').hmtl($(h).html()).fadeOut('slow').fadeIn('slow');
            //alert(h);
        });
    });

ただし、http: //jsfiddle.net/8rB3S/で確認できるように、コンテンツはfadeOut()有効になる前に読み込まれます。

私はこのヒントを試してみます:https ://stackoverflow.com/a/2745494/588842 、しかし、.html()で、これは機能しません....これだけfadeOutでいけませんfadeIn

そんな感じ:$('#aqui').fadeOut('slow').hmtl($(h).html, function(){$(this).fadeIn('slow');})

4

3 に答える 3

2

html()は同期的で、コールバック関数を渡しても何もしません。

一方、 fadeOut()は非同期です。したがって、最初に呼び出して、マークアップを変更するコールバック関数を提供してから、要素をフェードインします。

$("#aqui").fadeOut("slow", function() {
    $(this).html($(h).html()).fadeIn("slow");
});
于 2012-06-14T16:55:16.753 に答える
1

望ましい効果が何であるかはわかりませんが、以下のコードを試してください。

デモ: http://jsfiddle.net/skram/8rB3S/2/

$(function() {
    $('#menu a').click(function(e) {
        e.preventDefault();
        var h = $(this).attr('href');
        $('#here').fadeOut(100, function () {
            $(this).html($(h).html())           
           .fadeIn('slow');
        });
    });
});

また

DEMO: http://jsfiddle.net/skram/8rB3S/1/ (#here必要な場所にあると思われるので使用)

$(function() {
    $('#menu a').click(function(e) {
        e.preventDefault();
        var h = $(this).attr('href');
        $('#aqui')
           .hide()
           .html($(h).html())           
           .fadeIn('slow');        
    });
});
于 2012-06-14T16:53:42.493 に答える
0

フェードアウト フェードイン関数でコールバックを使用します。

$(function() {
        $('#menu a').click(function(e) {
            e.preventDefault();
            var h = $(this).attr('href');
            $('#aqui').fadeOut('slow', function(){
                $(this).html($(h).html());
                $(this).fadeIn('slow');
            }):
        });
});
于 2012-06-14T16:56:46.780 に答える