Javascript GWT/Twitter引导:GWT元素上的Popover?
我正试图在GWT的文本框上创建一个引导弹出框Javascript GWT/Twitter引导:GWT元素上的Popover?,javascript,gwt,twitter-bootstrap,Javascript,Gwt,Twitter Bootstrap,我正试图在GWT的文本框上创建一个引导弹出框 <a href="#" class="btn danger" rel="popover" title="A title" data-content="some content...">hover for popover</a> <script> $(function () { $("a[rel=popover]").popover({ offset: 10 });
<a href="#" class="btn danger" rel="popover" title="A title" data-content="some content...">hover for popover</a>
<script>
$(function () {
$("a[rel=popover]").popover({
offset: 10
});
})
</script>
然后,在my.html的
中,上面提到的
部分(带有$(“input[rel=popover])…”
)
所需的.js文件通过
但是当我在文本框上悬停时,什么也没有发生
一些问题:
这是否仅限于
?还是我加载的脚本文件错误?
甚至可以将rel=…
和data content=…
添加到GWT的文本框中吗?我需要jQuery/GQuery来处理那个脚本片段吗
编辑:
我尝试了Strelok的建议,但出现了以下错误:
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:396)
at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:200)
at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:525)
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:363)
at java.lang.Thread.run(Thread.java:680)
Caused by: com.google.gwt.core.client.JavaScriptException: (ReferenceError): $ is not defined
at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:248)
at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561)
at com.google.gwt.dev.shell.ModuleSpace.invokeNativeVoid(ModuleSpace.java:289)
at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeVoid(JavaScriptHost.java:107)
at de.eikecochu.awidb.client.Awidb.bindBootstrapPopover(Awidb.java)
at de.eikecochu.awidb.client.Awidb.onModuleLoad(Awidb.java:11)
... 9 more
我一直很想将Bootstrap与GWT集成在一起,但还没有尝试过。我的猜测是,如果您要包括
bootstrap twipsy.js
和bootstrap popover.js
,那么您还需要在页面上包括jQuery
除此之外,在GWT中附加文本框后,您很可能需要调用$('xxx').popover(选项)
。因此,请尝试以下方法:
public void onModuleLoad() {
final TextBox tb1 = new TextBox();
DOM.setElementAttribute(tb1.getElement(), "rel", "popover");
DOM.setElementAttribute(tb1.getElement(), "title", "A Title");
DOM.setElementAttribute(tb1.getElement(), "data-content", "Popover content...");
DOM.setElementAttribute(tb1.getElement(), "id", "test");
tb1.addAttachHandler( new AttachEvent.Handler() {
public void onAttach(AttachEvent e) {
if (e.isAttached()) {
bindBootstrapPopover(tb1.getElement().getId());
}
}
});
RootPanel.get().add(tb1);
}
native void bindBootstrapPopover(String id) /*-{
$('#'+id).popover( {offset:10} );
}-*/;
我很想知道你是怎么做到的。另外,看看GWT引导:) 它正在进行大量的开发,但是我们已经移植了很多小部件并正在工作
如果您愿意,可以看一看:除了包装引导工具提示插件之外,我正尝试做与Eike相同的事情。斯特雷洛克的回答在这方面对我帮助很大,但有两件事我必须分别解决:
com.google.gwt.core.client.JavaScriptException: (TypeError): Property '$' of object [object Window] is not a function
页面中包含了jQuery,对吗?还可以尝试
$wnd.$('#'+id).popover({offset:10})代码>。
com.google.gwt.core.client.JavaScriptException: (TypeError): Property '$' of object [object Window] is not a function