0

ここではこのスニペットが機能し、ここでは機能しない理由を説明できますか?

$('#about, #subscribe, #contact').hide();

$('.home').click(function() {
    var id = $(this).html().toLowerCase();
    var $content = $('#' + id + ':not(:visible)');
    if ($('.current').length === 0) {
        showContent($content)
    }
    else {
        $('.current').fadeOut(600, function() {
            showContent($content)
        });
    }
});

function showContent(content) {
    content.fadeIn(600);
    $('.current').removeClass('current');
    content.addClass('current');
}

私はフィドルに存在するまったく同じコードを入れました..

4

2 に答える 2

1

コードを次のようにラップします。

$(document).ready(function(){
    // your code here
});

これは、DOM が初期化された後にのみコードが実行されることを意味します。現在、DOM を操作する準備が整う前にコードが実行されるため、発生している問題が発生します。

フィドルでは、コードはロード時に自動的に実行されます(onLoadリンク先のフィドルにあるボックスを参照してください)。

詳細については、http: //api.jquery.com/ready/を参照してください。

于 2013-08-25T17:21:53.553 に答える