Использование JQuery или любой другой библиотеки JavaScript работает как чудо в калитке, если вы все сделаете правильно.
Прежде всего вам необходимо убедиться, что библиотека присутствует.Вы обычно делаете это, используя JavascriptPackageResource .
add(JavascriptPackageResource.getHeaderContribution("/path/to/jquery.js"));
(Поместите это в конструктор или динамический инициализатор или в onBeforeRender () )
Затем вам нужно убедиться, что
- ваш компонент имеет идентификатор (используйте
Component.setOutputMarkupId(true)
) и - вы используете правильный идентификатор в JQueryфункция (всегда получать идентификатор с помощью
Component.getMarkupId()
)
Вот пример с кнопкой, которая становится синей при нажатии:
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));