为什么这些JavaScript函数未定义?

时间:2016-08-19 01:53:01

标签: javascript jquery jquery-ui

我正在尝试理解this jsFiddle的输出。

我正在使用左侧的“外部资源”选项,通过Google's CDN加载jQuery UI。

有些事让我感到困惑......

  • jQuery UI 部分有效。我可以拖动“拖我”div。

    所以jQuery UI sys.exc_infodocs)很好。

    另一方面,.draggable()docs)不适用jQuery UI主题CSS。

    为什么.button()会工作,而不是.draggable()? (语法错误?)

  • .button()如何成为draggable

    它有效,所以它必须是一个功能,对吗?

  • undefined如何成为click

    undefined来自jQuery,click()是一个函数。 $不会也是一个吗?

这是JS ......

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 />');

  });

}());

3 个答案:

答案 0 :(得分:2)

上面使用的函数是$().draggable$().click$().button,而不是draggableclickbutton,在此范围内,最终寻找window.draggablewindow.clickwindow.button

获取$().draggable$().click$().button类型的另一种方式是$.prototype,通常将其别名为$.fn。所以:

$().draggable$().click$().button,或 $.prototype.draggable$.prototype.click$.prototype.button$.fn.draggable$.fn.click$.fn.button是相同的。这些与draggableclickbutton不同,window.draggablewindow.clickwindow.button在您的函数中与Max(ID)SELECT MAX(ID) AS MaxID From Tablename和{{1}相同}。

答案 1 :(得分:0)

这是因为你没有把它们绑在任何东西上,所以最终会看到window

你应该关注$.fn

答案 2 :(得分:-1)

功能与方法不同。 draggable不等于$('.dr').draggable,依此类推。