2017-05-04 22 views
0

こんにちは私は、wordpressのウェブサイトでjQuery UIアコーディオンを使用していますが、「Uncaught TypeError:$(...)」というエラーが表示されます。アコーディオンは関数ではありません "

私のfunctions.phpでは、この関数を使ってjQuery UIファイルと他のjQueryプラグインをバンドルしたapp.jsをロードします:wp_enqueue_script( 'theme-js'、get_template_directory_uri() '/ js/app.js'、array( 'jquery')、null、true);

app.jsファイルをバンドルするにはwebpackを使用します。

これは私がWebPACKの中に私のmain.jsでのjQuery UIを含める方法です:

var $ = window.jQuery; 
var jqueryUi = require("./jquery-ui.min.js"); 

私はすでに私のWordPressのインストールですべてのプラグインを無効にし、パーソナルプラグインjQueryのプラグインを削除しました。

ありがとうございます。

答えて

1

の1- Default Scripts Included and Registered by WordPress
2 - あなたは/コール/エンキューjQueryのUIのアコーディオンを追加しませんでした
wp_enqueue_script('jquery-ui-accordion');
あなたは多分.accordion()があるためです/コール/エンキューjQueryのUIコア wp_enqueue_script('jquery-ui-core');
を追加する必要がありますjQueryだけでなく、jQueryのUI効果!
3-必ずJSをラップしてください。
jQuery(document).ready(function($) { PUT YOU JS HERE });
最終ノート:node.jsを使用していますか?
そうでない場合、これは何ですかrequire ???
ご希望の場合は、SYA

+0

ありがとう!それは私の多くを助けた – dezimar

+0

@dezimarあなたは大歓迎です! – LebCit

1

あなたの出力では、おそらくロードオーダーの問題のようです。あなたがあなたのバンドルされていない出力を提供しない限り、言い訳がありません。

これは、WordPressエンキューシステムが設計しているものとは関係なく、依存関係管理です。私はjQueryのUIを別々にエンキューしてWPだけで適切な依存関係を割り当てます。これにより、このような問題を防ぐことができます。また、JSファイルを二重に含めることで問題を防ぐこともできます。 jQuery UIをバンドルしていて、いつかそれに依存するプラグインを使用していると、WPがそれをエンキューしている可能性があり、サイトに2つのバージョンがロードされます。パフォーマンスが悪く、維持するための頭痛。

サイトでHTTP/2を使用することを心配している場合は、これらのスクリプトを別々に読み込むことは、これまでのような懸案事項ではなくなりました。多重化される。

https://http2.github.io/faq/#what-are-the-key-differences-to-http1x

は要するに、私はより多くの利点が個別にキューに入れるために見て、あなたのJSにそれをバンドルすると少ないです。

+0

ありがとうございます!それは私をたくさん助けました – dezimar

+0

@dezimarあなたは正確に何をしたのか詳しく説明できますか?あなたは、javascriptコードにアコーディオンプラグインをロードするコードを追加しましたか? –

関連する問題