0

我想要的是调用这段代码

public native void eventClickHandler( String id) /*-{
  $wnd.jQuery('#' + id).bind('jqplotDataClick',function(ev, seriesIndex, pointIndex, data) {
    this.@it.codegen.gwt.jqplot.client.charts.JQChart::onClick(Ljava/lang/String;Ljava/lang/String;)(seriesIndex, pointIndex);
  });
}-*/;

这里的 onClick 方法是一个普通的 java 方法,我为此使用了 GWT 和 JSNI 接口。提前致谢!..

4

1 回答 1

1

你以前用过 jQuery 吗?this在传递给 jQuery 的函数中具有特殊含义。即使在 JSNI 中,当它在 Java 文件中时,它的行为也不会像 Java this,而是像 JavaScript this

试试这个:

public native void eventClickHandler( String id) /*-{
  var origThis = this;
  $wnd.jQuery('#' + id).bind('jqplotDataClick',function(ev, seriesIndex, pointIndex, data) {
    origThis.@it.codegen.gwt.jqplot.client.charts.JQChart::onClick(Ljava/lang/String;Ljava/lang/String;)(seriesIndex, pointIndex);
  });
}-*/;
于 2012-05-03T16:33:18.577 回答