1

我很想知道可能导致功能“不存在”的原因是什么。
例如,我有以下内容:

$.fn.myfunction = function(options){
  alert("test");
};
  $("#hello").myfunction();
alert($.fn.myfunction instanceof Function);

为什么 FireBug 会记录它不是函数?

提前致谢。

编辑:
我想要一个可能是错误原因的所有可能性的列表。这不是我遇到的错误,但我只是想拓宽视野并了解更多可能性。

4

3 回答 3

5

设置$.fn.myfunction使myfunction函数对返回的对象可用$(selector),而不是对$自身可用。

因此,$("#hello").myfunction是一个函数,但$.myfunction不是。如果您$.myfunction出于某种原因真的想成为一个函数(例如,它是一个不需要 jQuery 对象列表来操作的实用函数),只需显式设置它,而不使用$.fn

$.myfunction = function() { .... }
于 2012-05-07T12:45:56.980 回答
2

$上下文是什么?也许是 jQuery?如果您使用的是 jQuery,请标记您的问题。

(function( $ ) {
  $.fn.myPlugin = function() {

    return this.each(function() { // Maintaining chainability

      var $this = $(this);

      // Do your awesome plugin stuff here
      console.log($this); // TEMP

    });

  };
})( jQuery );

用法:$('#hello').myPlugin();

查看有关jQuery 插件创作的更多信息。

于 2012-05-07T12:50:04.350 回答
1

添加括号似乎有效:

alert($().myfunction instanceof Function);

返回真。

于 2012-05-07T12:44:42.777 回答