0

私の機能が古いjquery要素を使用している可能性があります。たとえば、クローザーとコールバックを使用する場合:

    $("input").each(function () {
       var input = $(this);

       //here for example we remove input from DOM
       //and insert the new one input

       $.ajax(url, function(){
          fun(input)
       }
    });

function fun(input){
//do something
input.val('newValue')
}

質問は次のとおりです。変数の参照がまだ正しいことを確認するにはどうすればよいですか。また、要素が再作成された場合、新しい入力で新しい参照を取得するにはどうすればよいですか (入力には ID とクラスがありません)。

UPDATE1:小さな更新を行いました。関数funで古い入力参照を使用します。また、newValueは、現在の入力が古い値であるため、新しい入力には適用されません。

4

1 に答える 1

1

jQuery オブジェクトの長さを確認することで、要素が存在するかどうかを確認できます。例えば:

if($(this).length < 1)
{
    // the element no longer exists in the DOM
}

ただし、jQuery のon()関数を使用して、現在または将来存在する要素にイベントをバインドすることができます。おそらく、それは現在作業している方法よりも優れた方法です。例えば:

$('body').on('click', 'input', function(e) {  
    // Place your click handler here.
});

この記事は、あなたにとって読む価値のあるものになるかもしれません。

于 2013-04-25T09:33:01.240 に答える