If your panel depends on jquery, you should render the reference to
jquery also in your panel.

On Wed, Sep 26, 2012, at 13:40, Oscar Besga Arcauz wrote:
>  Hi wickers !
> 
> I've a problem with wicket and jquery resource rendering.
> 
> My webpage has many panels wich uses jquery, and they have javascript
> attached to it. 
> This panel-dependant javascript uses jquery, so I render jquery with a
> resourcerefernce in the webpage. 
> (The page doesn't use ajax because I want to mantain page stateless and
> bookmarkable.)
> 
> The problem is that the javascript attached to panel is rendered first
> into the page, and the jquery reference is the last. 
> so, when the page fully renders, i've some 'ReferenceError: $ is not
> defined' errors in webrowser console.
> 
> ¿ Has anyone experienced similar problems ?
> 
> 
> Other little question: wicket6 uses jquery 1.7.2; has anyone tried with
> 1.8.x ?
> 
> Thanks in advance
> 
> 
>     > > > Oscar Besga Arcauz  < < < 
> 
> 
> PS. 
> 
> Example code (little long) --->
> 
> public class MyPage extends WebPage {
> 
> 
>     public MyPage (PageParameters parameters) {
>         super(parameters);
>         add(new MyPageJsBehaviour());
>         add(new MyPanel("mypanel"));
>     }
> 
> 
>     private class MyPageJsBehaviour extends Behavior {
> 
>             @Override
>             public void renderHead(Component component, IHeaderResponse
>             response) {                
>                 
> response.render(JavaScriptHeaderItem.forReference(JQueryResourceReference.get(),"jquery"));
>                 super.renderHead(component,response);
>            }
>     }
> 
> }
> 
> 
> public class MyPanel extends Panel {
> 
> 
>     public MyPanel(String id,String lang) {
>         super(id);
>         add(new MyPanelJsBehaviour());
>     }
> 
>     private class MyPanelJsBehaviour extends Behavior {
> 
>             @Override
>             public void renderHead(Component component, IHeaderResponse
>             response) {
>                 super.renderHead(component,response);
>                 response.render(JavaScriptHeaderItem.forReference(new
>                 JavaScriptResourceReference(MyPanel .class,
>                 "MyPanel.js"),"mypaneljs"));
>                 /**
>                 //MyPanel.js
>                 $(function () { // <-- here arises the error, as $ is not
>                 defined because MyPanel.js is loaded before jquery !!!
>                    $('mypanel').dosomething();
>                 });
>                 **/
>             }
>     }
> 
> }
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to