2016-08-19 5 views
-2

this jsFiddle의 출력을 이해하려고합니다.왜 이러한 JavaScript 함수는 정의되지 않습니까?

왼쪽에있는 "외부 리소스"옵션을 사용하여 Google's CDN을 통해 jQuery UI를로드하고 있습니다.

어떤 것들은 ...

  • jQuery를 부분적으로 UI 일을 저를 당혹 게한다. "drag me"div를 드래그 할 수 있습니다.

    그래서 jQuery UI .draggable() (docs)이 좋습니다. ()은 jQuery UI 테마 CSS를 적용하지 않습니다.

    .draggable()은 작동하지만 .button()이 아닌 이유는 무엇입니까? (구문 오류?)

  • draggableundefined 일 수 있습니까?

    작동하므로 제대로 작동해야합니다.

  • clickundefined이 될 수 있습니까?

    click()은 jQuery에서 가져온 것이고 $은 함수입니다. click도 하나가 아니겠습니까?

여기에 내가 갖는 출력은

(function() { 

    $(document).ready(function() { 

    $('.dr').draggable(); 

    $('.btn').button(); 

    $('.btn').click(function(event) { 
     alert('Clicked'); 
    }); 

    $('.output').append('typeof $: ' + typeof $ + '<br />'); 

    $('.output').append('typeof draggable: ' + typeof draggable + '<br />'); 

    $('.output').append('typeof click: ' + typeof click + '<br />'); 

    $('.output').append('typeof button: ' + typeof button + '<br />'); 

    }); 

}()); 

... JS의

typeof $: function // As expected. 
typeof draggable: undefined // How can it be undefined and still work? 
typeof click: undefined // ??? 
typeof button: undefined 
+2

왜'$ ('...') .draggable'가'draggable'로 참조 될 수 있다고 가정합니까? JavaScript가 작동하는 방식이 아닙니다. – Xufox

답변

2

기능이 $().draggable, $().click$().button, 그렇지 해당 범위에서 window.draggable, window.clickwindow.button 찾고 결국, draggable, clickbutton.

$().draggable, $().click$().button의 유형을 얻는 또 다른 방법은 일반적으로 $.fn로 별명이 $.prototype,하는 것입니다. 그래서 :

$().draggable, $().click$().button, 또는 $.prototype.draggable, $.prototype.click$.prototype.button 또는 $.fn.draggable, $.fn.click$.fn.button은 동일합니다.그리고 해당 문자는 draggable, clickbutton과 다른 문자로 window.draggable, window.clickwindow.button과 같습니다.

+0

좋아요, 당신이하는 말을 봅니다. 도와 주셔서 감사합니다. 나는'typeof $(). draggable'을 테스트했고, 실제로 함수 다. 큰 확인. 그게 한 가지입니다. '.button()'이 jQuery UI CSS를 적용하지 않는 이유에 대한 의견이 있으십니까? – Ethan

+0

jsfiddle에서 버그처럼 보입니다. .css 파일을 입력 한 CSS "외부 리소스"를 올바르게 추가하지 않았습니다. 방금 제거하고 다시 입력하면 작동합니다. https://jsfiddle.net/acdcjunior/meb6Lcas/4/ – acdcjunior

0

당신은 아무것도에 사람들을 묶는하지 않기 때문에 그것은이 그래서, 결국 window을 보게됩니다.

$.fn을 찾아야합니다.

-1

기능이 메소드와 다릅니다. draggable$('.dr').draggable과 같지 않습니다. 위에서 사용

관련 문제