使用GWT jsni在javascript函数内调用方法

时间:2012-05-03 11:59:04

标签: gwt jsni

我想要的是调用此代码

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接口。 在此先感谢!..

1 个答案:

答案 0 :(得分: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);
  });
}-*/;