2017-05-04 7 views
0

안녕하세요 저는 wordpress 웹 사이트에서 jQuery UI 아코디언을 사용하고 있는데 오류가 발생합니다. "잡히지 않은 TypeError : $ (...). 아코디언이 함수가 아닙니다. "

내 functions.php에서이 함수를 사용하여 jQuery UI 파일과 기타 jQuery 플러그인을 묶은 app.js를로드합니다. wp_enqueue_script ('theme-js', get_template_directory_uri() '/js/app.js', array ('jquery'), null, true);

webpack을 사용하여 app.js 파일을 번들로 제공하려면 다음을 수행하십시오.

이 내가 웹팩 내 main.js에서 jQuery를 UI를 포함하는 방법입니다

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

나는 이미 내 워드 프레스 설치에 모든 플러그인을 비활성화하고 인접의 jQuery 플러그인을 삭제.

감사합니다.

답변

1

1 Default Scripts Included and Registered by WordPress
2 - 당신은/전화/대기열 jQuery를 UI 아코디언 당신은 아마/전화/대기열 jQuery를 UI 코어 wp_enqueue_script('jquery-ui-core');
.accordion()이입니다 때문입니다 추가해야합니다
wp_enqueue_script('jquery-ui-accordion');
을 추가하지 않은 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가 그것을 큐에 넣을 수 있고, 두 버전이로드 될 것입니다. 성능 저하 및 유지 관리에 골머리를 앓고 있습니다.

성능이 좋지만 사이트에서 HTTP/2를 사용하는 경우 하나의 TCP 연결을 통해로드 할 수 있기 때문에 이전과 같이 개별적으로 스크립트를로드하는 것이 더 이상 걱정할 필요가 없습니다. 다중화된다.

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

은 즉, 나는 더 많은 장점이 별도로 대기열에 위해를 참조하여 JS로 번들로 적은.

+0

감사합니다! 그게 내게 많은 도움이되었습니다 – dezimar

+0

@dezimar 정확히 무엇을했는지 자세히 설명해 줄 수 있습니까? 아코디언 플러그인을로드하는 코드를 자바 스크립트 코드에 추가 했습니까? –