1

jPanelMenuという jQuery プラグインを使用しようとしています。これを使用するには、特別なオブジェクトを作成します:

var jpm = jQuery.jPanelMenu();

そのオブジェクトのメソッドを呼び出します。

jpm.on();

そのため、オブジェクトを作成するときに、その名前を入力すると、そのプロパティのリストが表示されます。これには、実際に「on」プロパティが含まれています。

入力するjpm.onと、このプロパティが関数のように見えることがわかります。

私はできるしtypeof jpm.on、それは戻ります"function"

しかし、私が呼び出すとjpm.on();、私は得る

TypeError: Object #<Object> has no method 'on'

コンソールで上記のすべてを実行しているスクリーンショットを次に示します。

Chrome の JavaScript コンソールでの上記のスクリーンショット。

私は JavaScript にそれほど熱心ではないので、これは私の基本的な概念知識のギャップであると思います。ここで実際に何が起こっているのですか?

4

2 に答える 2

1

申し訳ありませんが、これは単なる偶然の一致でした。古いバージョンのjQueryを実行していましたonが、見つからなかったメソッドは、on呼び出そうとしたものではなく、onバージョン1.7でjQuery自体に追加されたもので、明らかにjPanelMenu独自のonメソッドで使用されています。

最大の手がかりは、TypeError で、#<Object> has no method代わりにjpm has no method.

于 2013-01-22T19:31:01.293 に答える
-1

jPanelMenu.js の前に jQuery ライブラリを含めていることを確認してください。

于 2013-01-22T19:24:19.897 に答える