2010-07-20 4 views
16

이 두 가지의 차이점은 무엇입니까?

$('#SPANID').html("Some Text"); 

jQuery('#SPANID').html("Some Text"); 

프로토 타입 대 jQuery입니까?

답변

25

둘 다 똑같습니다. 대부분의 라이브러리는 $를 라이브러리 내의 함수에 액세스하는 더 짧은 방법으로 사용합니다.

jQuery를 그 라이브러리에 액세스하는 여러 가지 방법이 있습니다 하나 이상의 라이브러리를 사용한다면

window.jQuery('#SPANID').html("Some Text"); 

window.$('#SPANID').html("Some Text"); 

jQuery('#SPANID').html("Some Text"); 

$('#SPANID').html("Some Text"); 

jQuery를 또는 window.jQuery 대신 $ 사용할 수 있습니다.

JQuery에는 jQuery와 작동하지 않는 $ 변수에 대한 jQuery의 제어를 포기하는 jQuery.noConflict();이라는 함수가 있습니다.

이렇게하면 $를 사용하는 둘 이상의 라이브러리를 사용하는 것이 좋습니다.

그래서 jQuery를 사용할 때 Prototype을 사용할 때는 jQuery('#message').addClassName('read');$('#message').addClassName('read');을 사용합니다.

는 (이 다음 비트는 약간 주제를 벗어하지만 여러 라이브러리와 $를 사용하려는 경우 도움이 될 것입니다) 익명 함수를 사용하여, 같은 시간에 다른 라이브러리에 $를 사용하는 방법이 있지만

합니다. like :

(function($){ 


})(jQuery); 


(function($){ 


})(Prototype); 

각 함수는 jQuery와 Prototype과 같은 라이브러리 객체를 변수 $로 사용하므로 많은 라이브러리에서 사용할 수 있습니다. 각 라이브러리에 대한 코드가 각 라이브러리에 포함되어 있으면 작동합니다. 예를 들어

:

(function($){ 
    $(document).ready(function(){ 

     $('#message').addClass('read'); 

    }); 

})(jQuery); 


(function($){ 
    document.observe("dom:loaded", function() { 

     $('message').addClassName('read'); 
     //Or 
     $$('#message').addClassName('read'); 

    }); 

})(Prototype); 
+1

+1 주제가 약간 벗어난 경우 좋은 철저한 답변입니다. – Patricia

+1

@Tomgrohl, 의견을 보내 주셔서 감사합니다. 지금은 이해하기가 정말 쉽습니다. – shailesh

+0

@Patricia True. 나는 다른 날을 배웠고 언급 할만한 가치가 있다고 생각했습니다. –

16

하나 이상의 자바 스크립트 라이브러리를 사용하는 경우 $을 사용하면 충돌이 발생할 수 있습니다. jQuery을 사용하면 이러한 문제를 피할 수 있습니다.

+5

정답입니다. 게다가, jQuery는 $ 변수에 대한 jQuery의 제어권을 포기하기 위해 호출 할 수있는 noConflict() 메서드를 가지고있어 다른 프레임 워크와 함께 샌드 박스에서 제대로 재생할 수 있습니다. http://api.jquery.com/jQuery.noConflict/ – twerq

+3

.noConflict도 사용하는 경우에만 정답입니다. – EndangeredMassa

+0

"둘 이상의 자바 스크립트 라이브러리 사용"이란 무엇을 의미합니까? 그것은 자바 스크립트 플러그인 이상을 사용한다는 의미입니까? 기본 사항을 잘 이해하기 위해 갈등이 될 수있는 예를 들어 주시겠습니까? – shailesh

3

jQuery('SPANID') 실제로 jQuery('#SPANID')

$해야한다는 사실을 제외하고 실제로 차이는, jQuery를

편집 단지 속기이다 : 나는 $와 jQuery를 사이에 진짜 차이가 possibile 네임 스페이스에 있음을 이해 다른 도서관과의 충돌. 그것 이외에, 그들은 같은 방식으로 작동합니다. 당신은 또한 "$"

+2

차이가 있습니까? 그거 확실해? – RightSaidFred

+0

유형이있었습니다. – shailesh

+0

'$'는'jQuery'의 앨리어스 (alias)이므로 똑같은 동작을합니다 ...'$'가 (다른 js 라이브러리와) 네임 스페이스 충돌 위험이 높다는 것을 제외하고는 똑같은 동작을합니다. – kingjeffrey

1

. $ 기호를 사용하는 다른 라이브러리와 동일한 페이지에서 jQuery를 사용하려면 .noConflict() 옵션과 함께 jQuery를 사용할 수 있습니다. 이렇게하면 다른 라이브러리에 $을, jQuery 라이브러리에는 jQuery을 사용할 수 있습니다.

6

이 같은 일에 대한 별칭의 사용 또 다른 라이브러리를 참조 일어난 경우 충돌을 피할 것 명시 적으로 "jQuery를 사용"

0

차이점은 다음과 같습니다. $은 다른 라이브러리 또는 JavaScript 구문에서 자주 사용되므로 덮어 써서 예상 한대로 수행되지 않을 수 있습니다. jQuery은 항상 jQuery 라이브러리를 참조하므로 예상 한대로 작동합니다. 당신이 $jQuery 또는 jQuery.noConflict()를 사용하여 다른 뭔가로 덮어 쓰지 않습니다 보장 할 수 없습니다 환경에서

$보다 안전하다.

0

이미 정의 된 다른 라이브러리가있을 때 jQuery를 사용하십시오. $. 편리한 속기로서 $을 사용하십시오. (또는 걱정할 필요가없는 기능 범위 안에 :)

개인적으로는 개인적으로는 jq은 멋진 속기 키 스트로크는 $으로, 아마도 조금 덜 일반적입니다).

0

그것은 단지 짧은 손이 아니지만 $ 문자를 사용하고있는 다른 JavaScript 라이브러리를 위해 만들어졌으며 혼동이나 충돌을 피하기 위해 jquery 키워드를 사용하는 것이 좋습니다.

0

자세한 내용은 여기에 있습니다 : http://api.jquery.com/ready/

$은 (JQuery와) 자바 스크립트 라이브러리 jQuery를의 별칭입니다. 플러그인은 라이브러리의 특정 용도를 만들고 기능을 확장하는 특정 방식으로 라이브러리를 사용합니다. 사용

몇 가지 예 :

"보통"jQuery 코드 :

$(function(){ 
     // my jquery code here 
    }); 

참고 :이이 말을하는 것입니다 이벤트 관리이다는 DOM 준비 이벤트를 실행합니다.

플러그인 코드 :이 함수에 전달 된 $에 jQuery를 할당합니다 "라고 때문에 내부 혼란없이 $의 사용을 허용

(function($){ 
    //theplugin code here 
})(jQuery); 

($)


$(function(){ 
    //stuff here such as jQuery code 
}); 

$(function(){ 
    $("#mybutton").click(function() { 
    alert("hi");) 
)}; 
}); 

에서와 같이 당신은 $를 사용하는 다른 라이브러리를 사용하는 경우에만 활동하기 시작, (끝) 바인딩 (jQuery를 제외)

(function($) { 
    $(document).ready(function() { 
    $("#mybutton").click(function() { 
     alert("hi"); 
    )}; 
    }) 
})(jQuery) 

하지만 같은 아마도 좋지 않아 다음과 동일합니다. $


따라서 당신과 같은 변수를 가질 수 있습니다, 단지 문자 :

MYVARIABLE = 0; $ myvariable = 0; my $ variable = 0;

여기에 특별한 것은 없지만 다른 문자 만 사용하십시오.

$의 일반적인 사용은 $ = jQuery입니다. 다른 라이브러리는이 문자를 일반적인 속기 (별칭 정렬)로 사용하므로 noconflict와 전체 이름 (jQuery) 사용이 가능합니다.