Usar JQuery o cualquier otra librería de JavaScript funciona como un encanto en wicket si lo haces bien.
Antes que nada debe asegurarse de que la biblioteca esté presente. Generalmente haces eso usando un JavascriptPackageResource.
add(JavascriptPackageResource.getHeaderContribution("/path/to/jquery.js"));
(Pon esto en un constructor o o inicializador dinámica en onBeforeRender())
Entonces, es necesario asegurarse de que
- su componente tiene un id (utilizar
Component.setOutputMarkupId(true)
) y
- está utilizando la identificación correcta en la función JQuery (siempre recupere la identificación a través de
Component.getMarkupId()
)
He aquí un ejemplo con un botón que se vuelve azul cuando se hace clic:
add(new AjaxButton("id"){
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form){
target.appendJavascript(
"$('#" +getMarkupId() +"').css({'background':'blue'})");
}
}.setOutputMarkupId(true));
En appendJavascript si pasa cualquier nombre de la función jQuery, que no está funcionando. Para javascripts simples como alerta está bien. – jgg
si no funciona, probablemente estés haciendo algo mal. * Debería * funcionar de esa manera. (+1) –