在HTML,但不是在jQuery的名为.js支持的作品?(jquery support works

2019-06-25 07:23发布

尝试科莫多建一个jQuery UI的小部件。我启用了jQuery的API参考和它的伟大工程,一个.html文件。我再打开我的widget.js文件,并键入;

(function($) {

其次是

$.

我会希望获得智能这里,而是我得到:

没有找到落成。 (错误确定完井)

这是一个文件扩展名的事情吗? 是jQuery UI的小部件只是不支持?

Answer 1:

从科莫多的球员;

问题是,科莫多不知道匿名函数调用的上下文 - 换句话说科莫多是不够聪明,知道“jQuery的” ==“$”,在这种情况下。

但一切都没有失去,你可以告诉它的类型是在这种情况下,有什么帮忙的科莫多。 下面是一个使用jsDoc来帮助定义“$”的类型,例如:

  (/** @param {jQuery} $ */function($) { $. // will show jQuery completions now })(jQuery) 

;



Answer 2:

该参数是问题。 没有它:

(function()
  {
  $. //works
  jQuery. //works
  ...
  }
);

科莫多知道两者$和jQuery全局作为。 本地范围的优先级,所以$变得不确定。 相反,如果你在jQuery的票代替,$会的工作,但jQuery的不会:

(function(jQuery)
  {
  $. //works
  jQuery. //does not
  ...
  }
);


文章来源: jquery support works in html but not in .js?