Wicket AjaxLink不生成JavaScript

时间:2013-11-04 13:06:53

标签: wicket

我开始尝试使用Wicket AJAX功能,并希望实现AjaxLink。

这是关联的标记/ java代码:

<a wicket:id="testlink"></a>
---
AjaxLink<Component> link = new AjaxLink<Component>("testlink") {
    @Override
    public void onClick(AjaxRequestTarget target) {
        System.out.println("called");
    }
};
add(link);

但是onClick - 方法永远不会被调用,我猜是因为生成的HTML看起来像这样:

<a wicket:id="testlink" id="testlink7" href="javascript:;"></a>

关于我做错的任何想法?

3 个答案:

答案 0 :(得分:2)

href="javascript:;"有效,因为Wicket 6使用JavaScript事件注册。在Firefox中的某些浏览器开发工具中查看您的网页。将检查器指向链接并读取其ID,然后转到头部并展开其中一个<script type= text/javascript></script>标记。在那里,您应该找到该链接的ID,并看到有一条线,其中点击事件附加到链接的ID。单击链接时会执行URL。

Screenshot from Firefox Dev Tools

答案 1 :(得分:0)

感谢罗伯特澄清Wicket 6的ajax机制 - 我对这个话题很陌生,你给我的见解帮助解决了这个问题。

实际上它是由一些jQuery不一致引起的,我仍然没有完全解开,显然同事在我们的Wicket模块中使用了不同的jQuery版本,不知何故Wicket使用的不是它随附的那个但是在尝试时错误的将事件侦听器附加到组件。

当删除不必要的旧jQuery库时,Wicket开始正常工作 - 现在我只需要根据其他jQuery库再次运行来获取组件,但这是另一回事:)

答案 2 :(得分:0)

在我的情况下,我删除了body标签上的以下onload,并且AjaxLink onclick函数再次运行。

<body onLoad="MM_preloadImages('template-image/searchbto.png');">