0

次の小さな jQuery スクリプトがあります。

      $("#content").on("keyup", "#ID1", function() {
        $("#ID2").load("loadText", resizeResult());
      });

      function resizeResult() {
        if($("#ID2").height() != $("#ID3").height()){
          $("#ID3").animate({
            height: $("#ID2").height()
          }, 800);
        }
      }

私の問題は、サイズ変更機能が次の「キーアップ」イベントによってのみ実行されることですが、ID2 の「ロード」が完了したらすぐに実行したいということです。

4

3 に答える 3

0

keyupfunction の最後で resizeResult() を呼び出します

$("#content").on("keyup", "#ID1", function() {
       ..................

       resizeResult();
      });
于 2013-03-27T10:58:57.120 に答える
0

あなたのコードではすべてがうまく見えます。resizeResultただし、イベント内の関数から括弧を残す必要があります。ブラウザがスクリプトを実行したときにすぐに呼び出したくないからです。イベントが発生したときにのみ必要です。したがって、コードを次のように変更する必要があります (および jQuery を推奨する私のネイティブ共通イベントも):

$("#content").keyup(function() {
   $("#ID2").load("loadText", resizeResult);
});

function resizeResult() {
   if($("#ID2").height() != $("#ID3").height()){
      $("#ID3").animate({
         height: $("#ID2").height()
      }, 800);
   }
}

ID3安全に実行するには、html が完全にロードされるか、この html タグ (コンテナの後の JavaScript コード) がロードされるまで待つことをお勧めします。$.document.ready最初の方法は、jQuery から使用して実行できます。

于 2014-08-16T20:48:03.430 に答える
0

document.ready で load 関数を呼び出します。

$(function(){
   $("#ID2").load("loadText", resizeResult());  //<-- call load function in document ready and in keyup function..
   $("#content").on("keyup", "#ID1", function() {
      $("#ID2").load("loadText", resizeResult());
   })
   .....
});

読み込み中の URL が適切なパスであることを確認してください... loadText は適切なパスではないようです

于 2013-03-27T10:59:34.920 に答える