jQueryの呼び出す時の書き方が何通りかあり、それぞれ実行タイミングが違います。
今回は、皆さんも何度か目にしたと思われる書き方について、どのタイミングで呼び出されるのかをご紹介します。
どれも同じように見えますが、実際には書き方によって動作が違います。
目次
jQueryの呼び出し
例えば、以下のようによく見かける3つの書き方があります。
1 2 3 |
$(function(){}); $(document).ready(function(){}); $(window).load(function(){}); |
他にも、$()
をjQuery()
と書くこともありますが、ここでは割愛します。
結論から言うと、$(function(){});
と$(document).ready(function(){});
は同じタイミングで動きをしますが、$(window).load(function(){});
は実行タイミングが違います。
jQueryの実行タイミング
上記では3つ記述しましたが、ここからjQueryのreadyとloadに絞って話を進めます。
基本、プログラムは上から下に実行されますが、ここではreadyが先、loadが後に読み込まれるということを紹介しておきます。
具体的な順番は次のようになります。
実行する順番
- ページの読み込みが始まる
- HTMLの読み込みが終わる
$(document).ready
が実行- 画像など含めすべてのコンテンツの読み込みが終わる
$(window).load
が実行
【jQuery】処理実行タイミング $(document).readyと$(window).load – Qiita
HTMLが読み込まれたとき (function(){ //処理});jQuery(function(){ //処理});jQuery(document)…
readyとloadの2つのタイミングは?
どちらもHTMLの読み込みが終わった状態ですが、画像などコンテンツ全体の読み込みが終わったタイミングで実行されるのがloadです。
しかし、単純に順番の問題ではなく、適切に使い分けることが重要です。
例えば、readyの場合は画像が読み込み終わっていないので、CSSで指定していない大きさが可変の画像に対して、幅や高さを取得しようとするとおかしくなります。
以下、jQueryの実行タイミングによっての使い分けの例です。
ready
- HTMLを置き換えるものや、表示するかしないかを制御するもの
ラジオボタンが選ばれていたら表示するなど - ウインドウサイズによって決まるもの
スムーススクロールのコンテンツのポジション取得 など(場合によっては、rezsizeイベントも必要) - 読み込み時間をカモフラージュするためのアニメーションなど
load
- 画像の大きさを取得するものや、画像の大きさによって可変するもの
- ページ遷移時に表示するアニメーション(特にスマホは、readyにしてしまうと、ページが表示されたときにはもう終わっていたりする…)
$(function(){}) と $(window).on(‘load’,function(){}) の違い – Qiita
ページ読み込み時に処理を実行したい場合、いろいろな書き方があると思います。このあたりの違いをまとめました。種類jQueryのready と jsで昔から愛用されているonload が…
今まで何気なく使っていましたが、意識して書くことにします。
コメント