5

jQueryの遅延オブジェクトを使用して、要素がDOMにあるかどうかをテストできるかどうか疑問に思っています。

これが私が考えていることの一種です:

function chkDOM(selector) {
  if $(selector) {
    return deferred.promise();
  }
}

$.when(chkDOM(selector)).then(function() {
  // do something
});

これを実現するためのコードを作成する方法は正確にはわかりませんが、私の質問が理にかなっていることを願っています。この部分を正しく機能させることができれば、特定のjqueryプラグインの呼び出しを本質的に遅らせて、実際に正しく実行できるようにすることができます。

ありがとう!

4

3 に答える 3

8

セレクターの存在を定期的にチェックするループを実行していると仮定します。

var dfd = $.Deferred();
var checkSelector = setInterval(function () {
    if ($("#selector").length) {
        dfd.resolve();
        clearInterval(checkSelector);
    }
}, 1000);

dfd.done(function () {
   console.log('it has been added');
});

$.whenそれは必要ないことに注意してください。.done遅延オブジェクトで直接使用できます。

于 2013-01-31T02:59:21.830 に答える
2

以下を使用して、要素が存在するかどうかを確認できます。
据え置きを使用する必要はありません。

if( jQuery(selector).length > 0 ) {
    // exists
}
于 2013-01-31T02:57:04.520 に答える
0

DOMの要素を確認するには、

if($(selector).length > 0) {
// do something

}

$(selector)は、selectorの条件に一致する要素の配列を返します。

于 2013-01-31T03:50:15.197 に答える