如何通过javascript' s event.target.value
获取点击的元素文字?
我找到this knockoutjs example并希望将其移植到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>
爪哇:
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)
中的事件?
答案 0 :(得分:1)
你应该使用
@Function public static void myFunction(Hello model, String data) {
model.setSay(data);
}
正如经典DEW sample所做的那样。
答案 1 :(得分:0)
同样,这个例子在常规DukeScript项目中运行得非常好,但在DEW中失败了。 (可能是时候更新DEW了)