2011-01-26 2 views
0

인터넷을 통해 달러 기호 함수를 사용하여 자바 토글 메뉴에 사용하기로 결정했습니다. 그러나 "$"기호로 인해 코드가 실패합니다.

이것은 내가 사용하려고 해요 무엇 :

function $() { 
     var elements = new Array(); 
     for (var i = 0; i < arguments.length; i++) { 
      var element = arguments[i]; 
      if (typeof element == 'string') 
       element = document.getElementById(element); 
      if (arguments.length == 1) 
       return element; 
      elements.push(element); 
     } 
     return elements; 
    } 

    function toggle(obj) { 
     var el = $(obj); 
     el.style.display = (el.style.display != 'none' ? 'none' : ''); 
    } 

에서 $ "기능 $은() {"코드를 깰 것으로 보인다. 이 함수를 어떻게 선언합니까? $를 "anything"로 바꾸면 작동하지만 달러 함수가 아닙니다 ...

+0

jquery 또는 다른 자바 스크립트 프레임 워크를 사용합니까? –

+0

''$ ''이이 함수의 좋은 이름이라고 생각하는 이유를 설명 할 수 있습니까? – ChaosPandion

답변

7

달러 기호는 표준 자바 스크립트 기능이 아니라 타사 라이브러리의 일부입니다.

이러한 방식으로 달러 기호를 사용하는 두 개의 잘 알려진 라이브러리가 있습니다.

이전 버전은 Prototype이지만 현재 유행하고 현재 가장 많이 사용 된 것으로 보이는 것은 JQuery입니다.

두 라이브러리는 HTML 페이지에 <script> 태그를 추가하여 라이브러리 코드를 포함시킨 다음 해당 기능을 사용할 수 있습니다.

이 두 라이브러리의 기능 대부분은 해당 $() 기능에 포함되어 있습니다. JQuery의 경우 $() 함수를 jQuery()으로 참조하여 네임 스페이스 충돌을 방지 할 수 있습니다. 둘 다 사용하려는 경우에는 네임 스페이스 충돌을 방지 할 수 있습니다.

계속하기 전에 JQuery를 읽는 것이 좋습니다. JQuery는 매우 강력하고 많은 기능을 추가하지만 JQuery 코드를 작성하는 코딩 스타일은 일반 Javascript와 상당히 다를 수 있으며 약간 익숙해 질 수 있습니다 에. 그리고 그것은 API를 배우고 그것이 할 수있는 것을 찾아내는 것과 별개입니다.

$을 함수 이름으로 선언하는 방법 인 질문에 실제로 대답하려면 JQuery 소스 코드를 살펴보고 어떻게 수행하는지 확인하는 것이 좋습니다. 그러나,이 같은, 내가 시도 작동 $() 기능을 처음으로 생산 관리 : 솔직히 말해서, 나는 그렇게하지 않을

var $ = function() {alert('dollar works for me');} 
$(); 

. 다른 사이트에서 사용중인 방식으로 $() 함수를 실제로 사용하려면 JQuery를 사용해야합니다. document.getElementById()을 감싸는 것 이상의 의미를 지닙니다.

그런데 JQuery와 Prototype만이 유일하게 비슷한 라이브러리가 아닙니다. 이런 종류의 것에 관심이 있다면 MooTools, YUI 및 기타 몇 가지를 살펴볼 수도 있습니다.

희망이 있습니다.

+0

철저한 답변 주셔서 감사합니다! 나는 명심할 것이다. – Spectraljump

3

$ 기호는 다양한 자바 스크립트 프레임 워크 (프로토 타입/jQuery)의 표기입니다. "다른 것"으로 바꾸면 작동하는 인라인 함수와 사용중인 프레임 워크 사이에 충돌이 발생할 가능성이 큽니다.

그 자체로 표기법과 기능은 다음 예제에서와 같이 정확합니다.

새 탭/창을 열고 주소 표시 줄에 입력 :

javascript:eval("function $() { alert('hi'); } $();");