2012-05-07 10 views
1

私は、関数が「存在しない」ことを引き起こす原因が何であるかを知りたいと慎重です。
例えば、私は次のようしている:

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

なぜ放火魔は、それは関数ではありませんことをログに記録しますか?

ありがとうございます。

編集:私は、エラーの原因になることができるすべての可能性のリストをご希望の
。 これは私が持っているエラーではありませんが、私は自分の視点を広げて、より多くの可能性を認識したいと思っています。括弧を追加

+0

'$( 'x')の' $ '。myfunctionは' $ .fn.myfunction'の '$ '以外の関数を指します。 –

+0

機能ではないものはどこに記録されますか?詳細は、こちらをご覧ください。 – Ashe

+0

jQueryは既に読み込まれていますか? –

答えて

5

設定$.fn.myfunction$(selector)によって返されたオブジェクトに対してmyfunction関数を利用可能にします。$には使用できません。

したがって、$("#hello").myfunctionは機能ですが、$.myfunctionではありません。あなたが実際にいくつかの理由のために機能する$.myfunctionをしたい場合は$.fnを使用せずに、単に明示的に設定し、(例えば、それが動作するためにjQueryオブジェクトのリストを必要としないユーティリティ関数です):

$.myfunction = function() { .... } 
+2

['.each()'](http://api.jquery.com/each/)と['$ .each()'](http://api.jquery.com/jQuery)の違い​​です。各/)。どちらも全く異なる機能です。 –

+0

これを詳しく説明している素晴らしい記事があります:http://asimilia.wordpress.com/2008/12/17/jquery-extend-confusion/ –

1

が動作するように見えた:

alert($().myfunction instanceof Function); 

trueを返します。

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 plugin authoringに関する詳細情報を参照してください。

関連する問題