我正在將html/css/javascript中的megamenu轉換爲在wordpress中工作。我已經創建了一個工作步行者,並且都設置了。問題是,我不能讓JavaScript的工作。 JavaScript應該觸發頂級li在單擊時打開一個大型菜單部分,並在再次單擊時關閉它。如何解決「undefined不是函數」in wordpress
我已經使用這個JavaScript文件:
var swMegaMenu = (function() {
\t var $listItems = $('#sw-hrmenu > ul > li'),
\t \t $menuItems = $listItems.children('a'),
\t \t $body = $('body'),
\t \t current = -1;
\t function init() {
\t \t $menuItems.on('click', open);
\t \t $listItems.on('click', function(event) { event.stopPropagation(); });
\t }
\t function open(event) {
\t \t if(current !== -1) {
\t \t \t $listItems.eq(current).removeClass('sw-hropen');
\t \t }
\t \t var $item = $(event.currentTarget).parent('li'),
\t \t \t idx = $item.index();
\t \t if(current === idx) {
\t \t \t $item.removeClass('sw-hropen');
\t \t \t current = -1;
\t \t }
\t \t else {
\t \t \t $item.addClass('sw-hropen');
\t \t \t current = idx;
\t \t \t $body.off('click').on('click', close);
\t \t }
\t \t return false;
\t }
\t function close(event) {
\t \t $listItems.eq(current).removeClass('sw-hropen');
\t \t current = -1;
\t }
\t return { init : init };
})();
,我已經插入footer.php這樣的:
<script>
\t \t \t $(function() {
\t \t \t \t swMegaMenu.init();
\t \t \t });
\t \t </script>
問題是,我得到這個錯誤在footer.php:
<script>
\t \t \t $(function() { // Uncaught TypeError: Undefined is not a function
\t \t \t \t swMegaMenu.init();
\t \t \t });
</script>
,但此錯誤的JavaScript文件:
var swMegaMenu = (function() {
\t var $listItems = $('#sw-hrmenu > ul > li'), // Uncaught TypeError: Undefined is not a function
\t \t $menuItems = $listItems.children('a'),
\t \t $body = $('body'),
\t \t current = -1;
你是如何包括jQuery的? WordPress默認在[noConflict()模式]中運行它(http://codex.wordpress.org/Function_Reference/wp_enqueue_script#jQuery_noConflict_Wrappers)。 – rnevius 2014-11-06 10:59:31
是的,它看起來像你沒有jQuery。 – 2014-11-06 11:02:34
doesnt wordpress allready運行jquery?我按照1.9.1依賴排隊腳本: wp_register_script('megamenu-js',get_template_directory_uri()。'/inc/megamenu/swMegaMenu.js',array('jquery'),'1.9.1' ,真); \t \t wp_enqueue_script('megamenu-js'); – Stokken 2014-11-06 11:08:07