2011-12-15 9 views
3

document.readywindow.loadにいくつかのデータを格納および取得する必要があります:window.loadとdocument.readyのjQuery data()は未定義ですか?

<script> 
    $(window).load(function() { // Store here 
     $('img.storable').each(function() { 
     $(this).data("key", "value"); 
     console.log($(this).data("key")); // Output: value 
     }; 
    }; 

    $(document).ready(function() { // Retrieve here 
     $('img.storable').each(function() { 
     console.log($(this).data("key")); // Output: undefined! 
     }; 
    }; 
</script> 

出力document.readyには未定義です。私はdomイベントについて何か気付かないのですか?

答えて

6

$(document).ready() DOMがロードされるとすぐに実行されますが、$(window).load()は、DOMがロードされ、すべてのDOMリソースがロードされる(イメージやCSSファイルなど)まで実行されません。これは、値を設定する前に$(document).ready()が実行されることを意味します。

$(document).ready(function() { 
    alert('document ready'); 
}); 
$(window).load(function() { 
    alert('window load'); 
}); 
2

は、私は準備ができてドキュメントがwindow.load前に... だからそれだけで簡単なテストを行う

周りに正確に、他の方法でなければなりませんたまたまだと思います

関連する問題