我想在GWT中使用一个菜单小部件(教程和代码在这里:http://tympanus.net/codrops/2010/07/16/slide-down-box-menu/),其中包含用jQuery编写的javascript代码。 jQuery代码看起来很简单,但我没有这个库的经验,所以我想知道在GWT中使用(运行)该代码的最佳方法(快速和简单的说法)(也许我会使用其他代码) jQuery小部件也是如此)。
我找到了一个名为gwtquery的库,如果这是采取的方法,任何建议或代码将非常有用(加快代码换行过程)。
答案 0 :(得分:2)
您可以将jQuery与GWT一起使用。
$wnd
对象的属性。这是一个简短的(未经测试的)示例,演示了如何在GWT中的下拉框菜单网站中嵌入示例JavaScript代码。此示例没有做太多GWT< - > JSNI / jQuery交互,但它确实将标准jQuery代码集成到GWT类中。
import com.google.gwt.core.client.EntryPoint;
public class MyEntryPoint implements EntryPoint
{
public void onModuleLoad()
{
this.configureMenu();
}
public static final native void configureMenu()
/*-{
$wnd.$(function() {
$wnd.$('#sdt_menu > li').bind('mouseenter',function(){
var $elem = $wnd.$(this);
$elem.find('img')
.stop(true)
.animate({
'width':'170px',
'height':'170px',
'left':'0px'
},400,'easeOutBack')
.andSelf()
.find('.sdt_wrap')
.stop(true)
.animate({'top':'140px'},500,'easeOutBack')
.andSelf()
.find('.sdt_active')
.stop(true)
.animate({'height':'170px'},300,function(){
var $sub_menu = $elem.find('.sdt_box');
if($sub_menu.length){
var left = '170px';
if($elem.parent().children().length == $elem.index()+1)
left = '-170px';
$sub_menu.show().animate({'left':left},200);
}
});
}).bind('mouseleave',function(){
var $elem = $wnd.$(this);
var $sub_menu = $elem.find('.sdt_box');
if($sub_menu.length)
$sub_menu.hide().css('left','0px');
$elem.find('.sdt_active')
.stop(true)
.animate({'height':'0px'},300)
.andSelf().find('img')
.stop(true)
.animate({
'width':'0px',
'height':'0px',
'left':'85px'},400)
.andSelf()
.find('.sdt_wrap')
.stop(true)
.animate({'top':'25px'},500);
});
});
}-*/; // end JSNI method
} // end class
gwtquery库不是你想要的:除了模仿它的API之外,它与jQuery无关。