gpt4 book ai didi

java - 从 wicket 6 调用 javascript 函数,链接的 "onclick ()"

转载 作者:行者123 更新时间:2023-12-04 04:50:40 26 4
gpt4 key购买 nike

我有以下 java 和 html 代码:

this.leakageModel = new PropertyListView<Leakage> ( "leakage", new ArrayList<Leakage> ()) {
private static final long serialVersionUID = 1L;

@Override
protected void populateItem (final ListItem<Leakage> item) {

Link<String> brandLink = new Link<String> ("brandLink") {
private static final long serialVersionUID = -480222850475280108L;

@Override
public void onClick () {
//change another model in the page to update
//another table when the link is clicked
}

};

brandLink.add (new Label ("brand"));
item.add (brandLink);

} };

add (this.leakageModel);

html文件:
                        <tr wicket:id="leakage" class="testClass">
<td class="testClass">
<a wicket:id="brandLink" href="#">
<span wicket:id="brand"></span>
</a>
</td>

</tr>

我想要做的是能够从 onClick() 方法内部调用 javascript 函数。

我目前在 onClick 方法中进行的模型更新运行良好,并更新了页面上的另一个表。

但是,我尝试调用 javascript 函数或更改 css 样式的所有操作都失败了。

例如:

添加一个css类:

添加 (new AttributeAppender("class", new Model("anotherclass"), ""));

改用 AjaxLink 类型,以及我尝试过的许多其他方法都无济于事。

在相关说明中,我的初衷是隐藏表中除我单击的行之外的所有行。也许我可以仅从 Java 代码中执行此操作并且根本不需要 Javascript,但是如上所述更新 css 不起作用。

关于我做错了什么的任何建议?

最佳答案

On a related note, my original intention is to hide all rows in the table except the one I have clicked.



我将尝试为您的问题提供解决方案,而不是回答您的问题:)。

通过javascript隐藏表格行是非常有意义的。我建议按照 Hiding all but first table row with jQuery 中的描述使用 Jquery 来做这件事。 :
$("#myTbl tr:not(nth-child(3))").hide();

现在,每次用户单击您的 Wicket 链接时,您都必须执行上述 javascript 代码段。为此,您可以例如创建自己的链接类,如下所示:
public class JavascriptLink extends Label{

public JavascriptLink(String id, String label) {
super(id, label);
add(new AttributeAppender("onclick", "...your javascript here..."));
}
}

我让您将 jquery 与 JavascriptLink 结合起来以满足您的要求。它应该朝着这个方向努力。

关于java - 从 wicket 6 调用 javascript 函数,链接的 "onclick ()",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17494348/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com