簡體   English   中英

java.lang.Throwable:ReferenceError:事件未定義

[英]java.lang.Throwable: ReferenceError: event is not defined

如何通過javascript的event.target.value獲取點擊的元素文本?

我找到了這個淘汰賽示例,並想將其移植到Dukescript。

這是我的嘗試:

的HTML

<div class='liveExample'>   
    <h2 class="outmodel" data-bind="value: 'A', click: myFunction">Aaaaa</h2>  
    <h2 class="outmodel" data-bind="value: 'B', click: myFunction">Bbbbb</h2>
    <h2 class="outmodel" data-bind="value: 'C', click: myFunction">Ccccc</h2>
  <hr />
  <h1 data-bind="text: say"></h1>
</div>

Java:

package dew.demo.ko4j;

import net.java.html.json.*;
import net.java.html.js.*;

@Model(className="Hello", properties={
  @Property(name="say", type=String.class)
})
final class HelloViaKO {

  @Function public static void myFunction(Hello model){
    model.setSay(getTextValue());
  } 

  @JavaScriptBody(args={}, body = "return event.target.value;")
  private static native String getTextValue();

  static {
    Hello model = new Hello("Hello World!");
    model.applyBindings();
  }
}

而且您可以在此Fiddle中看到它,如果您查看控制台,則會出現以下消息

java.lang.Throwable: ReferenceError: event is not defined

由於java.awt.Event也不存在,我們如何像this.myFunction = function (data, event)這樣引用this.myFunction = function (data, event)

你應該用

@Function public static void myFunction(Hello model, String data) {
  model.setSay(data);
}

就像經典的DEW樣本一樣。

同樣,此示例在常規DukeScript項目中可以正常運行,但在DEW中失敗。 (可能是更新DEW的時間)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM