- ベストアンサー
jQueryのloadのcallbackが変な動作
- jQueryのloadメソッドでCallBackが成功しているにも関わらず失敗する場合があります。対象方法が全くわからないのでご教示願えませんでしょうか?
- 問題は★印が付いているところの処理です。アラートではSUCCESSになるのですが、なぜかロードが失敗する時があります。割合としては10回に1回程度で1回発生するとブラウザの再起動をしない限り二度とロードができなくなります。原因は何がいけないのでしょうか?
- jQueryのloadメソッドでCallBackが成功しているにも関わらず失敗する場合があります。ロードが失敗する時がありますが、原因は何がいけないのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
なぜ$(document).readyが2つあるのでしょう? そして、なぜそれぞれの$(document).readyの中で$("#target_1").loadを処理しているのでしょうか。 下記のような感じで1つにまとめてみたらいいんじゃないでしょうか。 試していないのでわかりませんが、2つの$(document).ready、$("#target_1").loadの呼びだされるタイミングがシビアになっていて時々エラーが起きているのではないでしょうか。 $(document).ready(function(){ $("#target_1").load("a.txt .tag", function(Text, status) { if ($("#target_1").text() == "あああ") { $("#target_2").load("a.txt .5tag"); $("#target_1").replaceWith("<img src = 'a.png'>"); else if ($("#target_1").text() == "いいい") { $("#target_2").load("a.txt .5tag"); $("#target_1").replaceWith("<img src = 'b.png'>"); } alert( "text: " + Text + "\nstatus: " + status ); });
その他の回答 (2)
- fujillin
- ベストアンサー率61% (1594/2576)
解決したのかどうかわかりませんが… >問題は★印が付いているところの処理です。 >アラートではSUCCESSになるのですが、なぜか >ロードが失敗する時があります SUCSESSになっているのは、★印の処理ではなくその前の通信結果でしょう。 まずは、対象としている処理のstatusに何が返るのか(返らないのか)を確認なさってはいかがでしょうか。 その前に、 if (A) { 処理1 else if (B) 処理2 alert( ~ ); の構文になっていますが、A、Bに該当しない場合(処理が実行されない)可能性はないのでしょうか? どのルートを通っているかの確認もなさったほうが良いのでは? また、上記(質問文に記載の)コードだと「{」に対応する「}」が見当たらないので、エラーになっている可能性も… (単なるタイポかな)
お礼
ありがとうございます。大変参考になる意見ありがとうございました。
- bornless
- ベストアンサー率46% (7/15)
すいません、さっきの回答ですがコードのインデントに全角スペース使ってるので、適宜半角スペースに置き換えてください
お礼
ありがとうございます。大変参考になる意見ありがとうございました。
お礼
ありがとうございます。大変参考になる意見ありがとうございました。