※ ChatGPTを利用し、要約された質問です(原文:JQueryでLoadで読み込んだHTMLに対し、$().widthで)
JQueryでLoadで読み込んだHTMLに対し、$().widthで幅設定できずに困っていませんか?
このQ&Aのポイント
JQueryを使用してLoadで読み込んだHTMLに対して、$().widthで幅設定などの操作ができない場合、どのように対処するか困っている方も多いです。
FireBugでブレークポイントを設定すると上手くいくことがありますが、それ以外の方法での対処法はあまり知られていません。
$().widthで幅設定ができない原因は、Loadで読み込む前に要素を変数に代入しているためと考えられます。この状況を打開する方法をご存じの方、助けてください。
JQueryでLoadで読み込んだHTMLに対し、$().widthで
JQueryでLoadで読み込んだHTMLに対し、$().widthで幅設定などの操作ができずに困っています(TT
色々調べたのですが、情報が出てこなかったので質問させてください。
----------------------------------------------------------
$("#loaddiv").load("http://hoge.com/hoge.html"); //ここでLOAD
$("div#base").ready(function() { //hoge.html内の#baseが準備できたら。
baseC = $("div#base"); //hoge.htmlの中の要素。変数へ記憶。(*1)
txtLine = $("div#textline",baseC); //hoge.html内#baseの中の要素
$(baseC).width(300); //#baseを幅300へ変更。
$(txtLine).width(300); //#textlineを幅300へ変更。
}
-----------------------------------------------------------
なぜか(*1)の部分に、FireBugでブレークポイントを設定すると上手くいきます。
おそらく、#baseや#textlineを含んだHTMLファイルを、
Loadで読み込む前に、変数へ代入するからと想像しますが、
Load内の全要素読取終了後イベント(それに近い方法)か、
Loadで読み込んだ後の要素を上手く操作する方法をご存じの方、
この状況を打開する方法をご存じの方、どうか助けてください(TT
お礼
回答ありがとうございます。 Load後のコールバックで動作させることに成功しました。 $("#loaddiv").load("http://hoge.com/hoge.html",function(){ //ここでLOAD baseC = $("div#base"); //hoge.htmlの中の要素。変数へ記憶。(*1) txtLine = $("div#textline",baseC); //hoge.html内#baseの中の要素 $(baseC).width(300); //#baseを幅300へ変更。 $(txtLine).width(300); //#textlineを幅300へ変更。 }); コールバックだと表示が崩れてしまって、上手くいかないと思っていたのですが、 LoadするHTML内で読み込ませていたCSSファイルを、 読み込む側のHTMLへ読み込ませることで解決しました。 kaorineさんありがとうございました。