2011-11-15 13 views
0

たとえば、現在のコンテキストがjQueryスタックであるかどうかを確認する必要があります。どうしますか?メソッドのチェックを無視します。それは醜い解決策です。 :)現在のコンテキストがjQueryスタックかどうかを確認する

例:たとえば

if(it_is_jquery_stack_context) { 
// do some stuff with jQuery support 
} 
else { 
// do some stuff without it 
} 

UPDATE

を:

if(typeof this.get=='function' && this.length && this.get(0)===dom_ element) { 
    // do some stuff 
} 

最後の質問は次のとおりです。

this.get(0)がのインスタンスであるかどうかを確認する方法DOM要素ですか?

+0

のjQueryが存在する場合は、チェックを意味ですか? 'this'がjQueryオブジェクトの場合は? – Ryan

答えて

1

本当にちょうどここにあなたの問題を推測するが、あなたはthisは、あなたができるjQueryオブジェクトを参照するかどうかを確認することを意味している場合do:

if("jquery" in this) { //lowercase intended 
// do some stuff with jQuery support 
} 
else { 
// do some stuff without it 
} 

jQueryオブジェクトでは、jQueryオブジェクトではなく、"jquery" in jQueryのようにjQuery名前空間ではなく、"jquery" in jQuery("div")がtrueです。

最後の質問は次のとおりです。

this.get(0)DOM要素のインスタンスであるかどうかを確認する方法は?例えば

this[0] && this[0].nodeType && this[0].nodeType === 1 

しかし、jQueryのオブジェクトは、常にそこにDOMノードを持っていないとして、これは無意味です。

+0

少し近いです。しかし、カスタムコンテキストがjqueryプロパティまたはメソッドを持つオブジェクトである場合、ステートメントは間違っていきます。 (typeof this.get == 'function' && this.length && this.get(0)== dom_要素){do some stuff}のようにチェックする方が良いでしょう。しかし、プロパティがDOM要素であるかどうかを確認することはできません。 – Somebody

+0

小文字のjqueryプロパティをオブジェクトに手動で追加することは、このコードに匹敵します。 'jQuery = null; $ = null; 'これで安全になるはずです:)ちょうど楽しみのために' this.constructor === jQuery'のようなことをすることはできますが、例えばあるオブジェクトが別のiframeから来た場合にはうまくいきません。 – Esailija

+0

this.constructor === jQueryはしばらくするでしょう。 :)、ただし、DOM要素のinstanceofを確認する方が良いでしょう。ありがとうbtw;) – Somebody

0

次のいずれかの操作を行うことができます

if (jQuery) { 
    // jQuery is loaded 
} else { 
    // jQuery is not loaded 
} 

OR

if (typeof jQuery == 'undefined') { 
    // jQuery is not loaded 
} else { 
    // jQuery is loaded 
} 
+0

グローバルコンテキストメイトを確認しています。私の質問を少し更新しました。 – Somebody

+0

最初は動作しません。 'jQuery'がロードされていなければ、エラーがスローされます – Matt

1

あなたはそれがjQueryオブジェクトだかどうかを確認するためにthisをチェックするためにこれを行うことができます:

if (this.jquery) 
{ 
    //this is a jquery object so you can act accordingly 
} 
else 
{ 
    //this is not a jQuery object, you can do $(this) to make it into one if it's a DOM object 
} 
+0

カスタムコンテキストにはthis.jqueryプロパティですが、jQueryスタックではありませんか? – Somebody

+0

これを達成するには別の方法を考えなければなりません:-)提供された情報に基づいて、これは適切な解決策になります。 – arb

関連する問題