Hello,
we had a problem with JQueryBehaviour overwriting the JQuery.js on ajaxcalls
and thus deleting references to JQuery objects.
In our app, we have a JQuery Datepicker and some ajax loaded dropdowns with
an attached JQuerybehaviour. Thus, when a dropdown was refreshed via ajax,
the JQuery.js was send in the renderHead method of JQuerybehaviour.
Though our datepicker, which was referencing a JQuery object, lost this
reference when the lib was included in the head.
Our solution is the following: We track whether the lib has already been
included using a MetaDataKey
@SuppressWarnings("serial")
public class BasicJQueryBehavior extends JQueryBehavior
{
/**
* Methode wurde überschrieben weil die Methode von
<code>JQueryBehavior</code>
* ineffizient war.
*/
@Override
public boolean getIncludeJQueryJS(IHeaderResponse response)
{
final Page page=getComponent().getPage();
return page.getMetaData(KEY_JQUERYINCLUDED)==null;
}
@Override
public void renderHead(IHeaderResponse response)
{
super.renderHead(response);
getComponent().getPage().setMetaData(KEY_JQUERYINCLUDED,Boolean.TRUE);
}
private static final MetaDataKey KEY_JQUERYINCLUDED=new
MetaDataKey(Boolean.class)
{
/**
*
*/
private static final long serialVersionUID =
8009276756129719518L;
};
}
--
View this message in context:
http://www.nabble.com/JQueryBehaviour-overwriting-JQuery.js-on-ajaxcall-tp16143968p16143968.html
Sent from the Wicket - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]