2011-05-06 3 views

답변

8

의 jQuery 객체는 'JQuery와'라는 속성이 있습니다.

if (foo.each) 
{ 
    foo.each(function(... 
} 
else 
{ 
    $(foo).each(function(... 
} 
+0

이것은 정확히 제가 마르코에게 감사 드리고자했던 것입니다! – Darcy

1

jQuery를 단지 자바 스크립트입니다 :

Utils.Listbox.MoveItemsUp = function(listbox) { 

    if(listbox.isJquery()) { 
     listbox.each(function(){}); 
    } 
    else { 
     for(var i = 0; i < listbox.options.length; i++){} 
    } 
}; 
1

한 가지 방법은 jQuerys에게 $.isPlainObject 기능을 사용하는 것입니다 (doc)이 객체가 {} 또는 new Object, JQuery와 객체를 사용하여 생성 된 경우 즉, 당신을 말할 것이다 : 나는 당신이 비록 jQuery를 함수의 존재 여부를 테스트있을 것 같아요 거짓을 반환합니다. 그러나, 배열, 문자열과 기능도 false를 돌려줍니다 것도주의 : 당신이 기억해야하는 콜백 내에서 객체 this는 항상 기본 개체가 아닌 JQuery와 객체 당신의 때마다 것입니다

var obj = {}; 
var $obj = $('div'); 

$.isPlainObject(obj); //returns true 
$.isPlainObject($obj); //returns false 
0

. 당신의 등

당신의 recurving 변수 경우 JSON 개체, 부울, 문자열로 유형을 반환하는 특정 방법을 사용하지 않는

a = $('a').each(function(){ 
    //'this' is ALWAYS an native object 
}); 

a 항상 jQuery를의 인스턴스가 될 것입니다 : 예를 들어

귀하의 컨트롤 밖의 함수에서 jQuery 객체인지 알아 보려면 다음을 수행하십시오.

if(!listbox || !listbox.jquery) 
{ 
    listbox = $(listbox) 
} 
//the variable is now always going to be a jQuery object. 

jquery는 항상 선택된 컨텍스트 내에서 해당 버전에 대한 참조를 저장합니다.

0

개체가 jQuery 개체인지 테스트하려면 해당 개체의 jquery 특성을 확인해야합니다. 그래서 :

<script> 
Utils.Listbox.isJquery = function() 
{ 
    return typeof this.jquery != 'undefined'; 
} 
</script> 
관련 문제