2013-07-13 6 views
0

태그에 대해 다소 혼란 스럽습니다. 나는 개찰구 1.5에서 부모 -> 자식에서 자식 -> 부모로 머리 렌더링 전략이 변경되었음을 안다.위킷 헤드 섹션 계층

이제 wicket 6.9를 사용하고 일부 jquery 효과를 사용하려는 간단한 메뉴 패널이 있습니다. 전 응용 프로그램에서 동일한 jquery (예 : Google) 파일을 사용하고 싶습니다.

메인 페이지에서만 jquery 링크를 사용할 수 없습니다. 렌더링 메뉴 패널에 "$ (document) .ready"가 있고 인식되지 않기 때문입니다. 일부 포럼을 읽고 패널이 jquery itselft를 포함해야한다는 의견을 발견했습니다. 독립적으로 재사용 할 수 있기 때문에 합리적입니다.

그래서 지금 내 페이지 구성 :

<head> 
    ... 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script> 
    ... 
</head> 

그리고 내 메뉴 패널은 동일한 구성되어 있습니다. 렌더링 된 html 결과 jquery.js를 두 번로드합니다.

어떻게 해결해야합니까? 한 번만로드하고 싶습니다. 나는 오래된 전략으로 되돌아 갈 수 있고 application.getResourcesSettings(). setHeaderItemComparator()를 할 수 있다는 것을 알고있다. 그러나 나는 그것을 읽는 것이 최선의 해결책이 아니다.

개찰구에서 PriorityHeaderItem과 같은 클래스를 찾을 수 있지만 문서가 개찰용으로 매우 좋지 않으며 사용 사례가 없습니다. 개찰구 1.6 jQuery를 이후

안부

답변

0

이제 프레임 워크에서 사용하는 자바 스크립트 라이브러리입니다. 그래서 당신은 포함 된 것과 wicket 버전 때문에 jQuery를 두 번 볼 수 있습니까? jQuery 버전을 재정의하려면 Resource Reference를 만든 다음 Application 클래스의 init 메소드에서 설정할 수 있습니다.

먼저 리소스 참조 파일이 필요하며 js 파일을 동일한 패키지 구조에 넣으십시오.

public final class JQueryResourceReference extends JavaScriptResourceReference { 

    private static final JQueryResourceReference INSTANCE = new JQueryResourceReference(); 

    private JQueryResourceReference() { 
     super(JQueryResourceReference.class, "jquery.js"); 
    } 

    public static JQueryResourceReference get() { 
     return INSTANCE; 
    } 
} 

그런 다음 응용 프로그램의 init 메소드에서이 작업을 수행 :

public MyApplication extends AuthenticatedWebApplication { 

    @Override 
    protected void init() { 
     super.init(); 

     getJavaScriptLibrarySettings().setJQueryReference(JQueryResourceReference.get()); 

     .... 
    } 

    .... 
}