java.lang.Throwable:ReferenceError:事件未定义
2015-12-15
99
如何通过 javascript 的
event.target.value
获取被点击元素的文本?
我找到了 这个 knockoutjs 示例 ,想将其移植到 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: 事件不存在定义
由于 java.awt.Event 不存在,我们如何像
this.myFunction = function (data, event)
那样引用事件?
2个回答
您应使用
@Function public static void myFunction(Hello model, String data) {
model.setSay(data);
}
就像经典的 DEW 示例 那样。
Jaroslav Tulach
2015-12-15
同样,此示例在常规 DukeScript 项目中运行良好,但在 DEW 中失败。(可能是时候更新 DEW 了)
monacotoni
2015-12-15