2

次の関数があります。func resizeInputText は正常に動作します。基本的に、アプリケーションが ajax 経由でデータを正常にロードしたときに resizeAll を呼び出したいと思います。

ページの読み込み後にコンテンツが取得されるため、各コードを .on イベントでラップしようとしました。

機能していません。これを行う方法または ajax をロードしたコンテンツで .each を呼び出す方法を知っている人はいますか?

いつもありがとう!

function resizeInputText(obj) {
var boxWidth = ($(obj).val().length * 7) + 1;
    if (boxWidth <= 30) {
        var boxWidth = 30;
    } else if (boxWidth >= 250) {
        var boxWidth = 250;
    }
$(obj).css({width:boxWidth});
}

function resizeAll() {
$("#right-content").on(function () {
    $("input:text").each(function () {
        resizeInputText(this);
    });
});
}
4

3 に答える 3

4

あなたの.onメソッドにresizeAllは、関数を実行するイベントがありません。ドキュメント ページでさまざまな使用法を確認できますが、基本的には、リッスンするイベントと、そのイベントが発生したときに何をするかを指定する必要があります。Ajax は、メソッドを使用してバインドできるいくつかのイベントをブロードキャスト.onします。この場合、「ajaxSuccess」が適切なイベントになる可能性があります。

ただし、より良いアプローチresizeAllは、ajaxCall が正常に完了したときに実行される ajax メソッドのコールバックとして渡すことです。jQuery ajax 構文では、オプションを含めることでこれを行うことができますsuccess: resizeAllresizeAllその場合、次のように変更します。

function resizeAll() {
    $("input:text").each(function () {
        resizeInputText(this);
    });
}
于 2012-06-09T17:11:50.200 に答える
0

ThiefMaster が言ったように、次のようなことができます。

$.ajax({  
url : "requested url",
data : { "data to be send "},
success : function(data) {
   $.each(data, function(index,value) {

     //your code goes here
  });
}
}); 
于 2012-06-09T17:12:07.587 に答える
0

successAJAX リクエストのコールバックで関数を呼び出すだけです。

于 2012-06-09T17:07:13.173 に答える