gpt4 book ai didi

html - 如何在 GWT 中的 HTML 小部件内的链接上捕获点击事件?

转载 作者:搜寻专家 更新时间:2023-10-31 22:50:01 26 4
gpt4 key购买 nike

我正在评估 GWT 作为为我 future 的项目开发 AJAX 应用程序的备选方案之一。直到现在它已经很好了,但现在我一直在寻找一种方法来捕获对 HTML 小部件内标签的点击。我想在 HTML 中编写链接,但我想在不重新加载页面的情况下处理我的应用程序中的点击。假设我有以下 HTML:

<p>GWT is a great tool and I think it will be my preferred tool to develop web applications. To check out my samples <a id='mylink'>click here</a></p>

我想捕获对文本“单击此处”部分的单击。到目前为止,我所做的是尝试将 ID“mylink”附加到某种可点击的小部件,并使用该小部件的 ClickHandler 处理点击,但没有任何效果。

有办法吗?顺便说一下,我对 Javascript 知之甚少。

提前谢谢你。

最佳答案

你也可以这样做:

Anchor.wrap(DOM.getElementById("mylink")).addClickHandler(yourClickHandler);

DOM 类是 com.google.gwt.user.client.DOM


评论后编辑。

好的,该方法适用于 GWT 小部件之外的元素(元素随 HTML 文件一起提供)。如果您需要在 GWT 代码中生成它,那么您可以单独添加链接元素。但如果您的内容来自 DB,它就不会工作。

HTMLPanel html = new HTMLPanel("GWT is a great tool and I think it will be my preferred tool to develop web applications. To check out my samples ");`Anchor a = new Anchor("click here");a.addClickHandler(yourClickHandler);html.add(a);

如果它是完全动态的,我现在还不知道。我正在尝试使用 HTML() 小部件,您可以在其中插入点击处理程序,但我找不到正确的方法来确定点击是否在 A 元素中。奇怪。


final方法(我希望)

这个终于可以用了。而且我认为这是应该完成的方式,特别是它允许任何 HTML 结构。有两种方式:

<强>1。在 HTMLPanel 中转换链接

这将找到所有 A 元素并将它们转换为 anchor 。它会忽略 href 属性,但您可以轻松添加它:)

HTMLPanel html = new HTMLPanel("<p>Multilink example 2: <a>link1</a> and <a>link2</a></p>");NodeList<Element> anchors = html.getElement().getElementsByTagName("a");for ( int i = 0 ; i < anchors.getLength() ; i++ ) {    Element a = anchors.getItem(i);    Anchor link = new Anchor(a.getInnerHTML());    link.addClickHandler(...);    html.addAndReplaceElement(link, a);}

<强>2。将链接插入准备好的位置

只需插入占位符,即应插入小部件的位置。您还可以使用 addAndReplaceElement() 方法,但使用字符串 ID。

Anchor a1 = new Anchor("a1");a1.addClickHandler(...);Anchor a2 = new Anchor("a2");a2.addClickHandler(...);HTMLPanel html = new HTMLPanel("<p>Multilink example: <span id='a1'></span> and <span id='a2'></span></p>");html.add(a1, "a1");html.add(a2, "a2");

关于html - 如何在 GWT 中的 HTML 小部件内的链接上捕获点击事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7465988/

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