Вызов метода внутри функции javascript с использованием GWT jsni

Я хочу вызвать этот код

public native void eventClickHandler( String id) /*-{
  $wnd.jQuery('#' + id).bind('jqplotDataClick',function(ev, seriesIndex, pointIndex, data) {
    [email protected]::onClick(Ljava/lang/String;Ljava/lang/String;)(seriesIndex, pointIndex);
  });
}-*/;

Здесь метод onClick является обычным методом Java, и я использую для этого интерфейс GWT и JSNI. Заранее спасибо!..


person Shamitha Silva    schedule 03.05.2012    source источник
comment
это не работает, извините, я думаю, что забыл упомянуть об этом.   -  person Shamitha Silva    schedule 03.05.2012
comment
возможный дубликат GWT/JSNI this. не заменяется ссылкой на экземпляр   -  person Thomas Broyer    schedule 03.05.2012
comment
использование this несколько рискованно, так как оно относится к владельцу функции. является ли метод JSNI членом типа наложения? пожалуйста, приложите больше контекстного кода и некоторые сгенерированные исключения, если они существуют.   -  person Eliran Malka    schedule 04.05.2012


Ответы (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) {
    [email protected]::onClick(Ljava/lang/String;Ljava/lang/String;)(seriesIndex, pointIndex);
  });
}-*/;
person Colin Alworth    schedule 03.05.2012
comment
Спасибо за ответ, но кажется, что он все еще не работает, нужно найти способ ссылаться на методы внутри функции jquery. - person Shamitha Silva; 04.05.2012