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

true を返します。

于 2012-05-07T12:44:42.777 に答える