やりたいこと
ページを表示した時、JQueryがロードされた段階で必ずスクリプトを実行したいです。
ページ表示段階でJQueryがロードされていなければスクリプトを実行しないというエラー回避ではなくJQueryがロードされた段階で必ずスクリプトを実行したい
という要件になります。
困っていること
以下のようなHTMLがあります。(簡略化しています)
Html
1<ul class="users"> 2 <li>Michael</li> 3 <li>Daniel</li> 4 <li>John</li> 5</ul> 6 7<script> 8$('.users').each(function(index, user) { 9 console.log($(user).text()); 10}); 11</script>
これをスーパーリロードすると、以下エラーがコンソールに出力されます。
※スーパーリロードしない時はキャッシュが有効なのでエラーが起こりません。
Uncaught ReferenceError: $ is not defined
JQueryがロードされる前にスクリプトが実行されていることはわかるのですが、これの対応策が調べてもわかりませんでした。
これを以下のようにすればエラーを回避できることがわかりましたが、エラー回避ではなくJQueryがロードされた段階で必ずスクリプトを実行したい
というのが今回の要件になりますのでマッチしませんでした。
Html
1<ul class="users"> 2 <li>Michael</li> 3 <li>Daniel</li> 4 <li>John</li> 5</ul> 6<script> 7if (typeof jQuery != "undefined") { 8 $('.users').each(function(index, user) { 9 console.log($(user).text()); 10 }); 11} 12</script>
「待つ」という手段としてsetIntervalというものがあることも知りましたが、この要件への当てはめ方が調べてもわかりませんでした。
すみませんがよろしくお願いします。
回答4件
あなたの回答
tips
プレビュー