将JQuery附加到Wicket组件

时间:2013-12-23 11:40:54

标签: jquery wicket

我正在测试将javascript附加到我的wicket组件,它似乎工作正常。但是当我把它作为一个jquery函数时,它不起作用。

其他jquery函数正常工作,我有库。我想在添加到页面时为每个组件添加脚本。

ExternalLink taricLink = new ExternalLink(
                "tariclink",
                "http://ec.europa.eu/taxation_customs/dds2/taric/taric_consultation.jsp?Lang=en");
        final String tar = "taricLink" + Integer.toString(taricNum);
        taricLink.setOutputMarkupId(true).setMarkupId(
                "taricLink" + Integer.toString(taricNum));

通过阅读文章,这就是我找到的方式:

taricLink.add(new AbstractAjaxBehavior() {
            @Override
            public void renderHead(IHeaderResponse response) {
                String js = "$(#" + tar + ").click(function(){"
                        + "alert(\"hello\")" + "});";
                response.renderOnDomReadyJavascript(js);
            }
            public void onRequest() {
            }

        });

        add(taricLink);

在html中:

<a href="#" wicket:id="tariclink" target='_blank'>TARIC</a> 

1 个答案:

答案 0 :(得分:1)

如果您想在点击链接时发生某些事情,那么您需要使用AjaxEventBehavior这样的内容:

private ExternalLink taricLink() {
    final String url = "http://ec.europa.eu/taxation_customs/dds2/taric/taric_consultation.jsp?Lang=en";
    ExternalLink el = new ExternalLink("taricLink", url);
    el.add(new AjaxEventBehavior("click") {

        @Override
        protected void onEvent(AjaxRequestTarget art) {
            art.appendJavaScript("alert('clicked')");
        }
    });
    return el;
}

如果需要,您可以在appendJavaScript函数中执行一些jQuery。