即时在 gwt 中创建一个 span 元素

creating a span element in gwt on the fly

我需要在用户开始输入 div 后立即在 div 中创建一个 span 元素。我已将 div 的 contenteditable 属性 设置为 true 但由于这个原因,输入的文本正在成为 div 的一部分,而不是我尝试使用 spanelement.focus() 方法的范围但它并没有解决我的问题。

这是我的示例代码片段:

Element div = DOM.createDiv();
div.setClassName("intelliTextField");
div.setId("intelliTextField");
div.setAttribute("contenteditable", "true");

SpanElement span =div.appendChild(Document.get().createSpanElement());    
initialSpan.setAttribute("contenteditable", "true");

只要用户开始输入 div.But,我就会将此跨度元素附加到 div,输入的文本将成为 div 的一部分,而不是跨度。

有什么帮助吗?

你是这个意思吗?

Element div = DOM.createDiv();
div.setClassName("intelliTextField");
div.setId("intelliTextField");
div.setAttribute("contenteditable", "true");

Element spanElement = DOM.createSpan();
SpanElement mySpanElement = SpanElement.as(spanElement )
//do some job on SpanElement
DOM.appendChild(div, mySpanElement);

当然可以省略创建SpanElement对象,直接通过appendChild

将spanElement放入div