2017-05-04 63 views
0

你好我正在WordPress網站上使用jQuery UI手風琴,我得到錯誤:「Uncaught TypeError:$(...)。手風琴是不是一個函數「

在我的functions.php我加載了一個app.js,其中我用這個函數捆綁了jQuery UI文件和其他jQuery插件:wp_enqueue_script('theme-js',get_template_directory_uri() '/js/app.js',array('jquery'),null,true);

要捆綁app.js文件我使用webpack。

這是我包括jQuery UI的我main.js中的WebPack:

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');
你也許需要添加/電話/排隊jQuery UI的核心 wp_enqueue_script('jquery-ui-core');
這是因爲.accordion()是jQuery的UI效果,而不僅僅是jQuery!
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可能會將它加入隊列,並且你的網站上會加載兩個版本。性能不佳,並且很難維持。

如果您擔心性能,但在您的站點上使用HTTP/2,單獨加載這些腳本應該不再像過去那樣擔心了,因爲您可以加載一個TCP連接,並且它是複用。

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

總之,我看到更多的優勢分別排隊,並與它捆綁到您的JS少。

+0

謝謝!那幫了我很多 – dezimar

+0

@dezimar你能詳細說明你到底做了什麼嗎?您是否已將代碼添加到JavaScript代碼以加載手風琴插件? –

相關問題