GWT JSNI jquery,使用ui:field选择回调中的元素not work
我想知道为什么bind操作在回调中无法选择该元素时有效,以及任何解决方法。谢谢 编辑:GWT JSNI jquery,使用ui:field选择回调中的元素not work,gwt,jsni,Gwt,Jsni,我想知道为什么bind操作在回调中无法选择该元素时有效,以及任何解决方法。谢谢 编辑: 将起作用,但不知道原因,有人能解释一下吗?由于在单击回调之前对bindActions进行了评估,因此回调没有机会在传递给方法时的状态下访问输入 这样做的唯一方法是通过持有引用(就像您聪明地做的那样)锁定状态,或者将整个绑定包装在一个闭包中(非常繁琐和冗余),如下所示: 私有本机void bindActions(JavaScriptObject保存,JavaScriptObject输入)/*-{ (功能(中){
将起作用,但不知道原因,有人能解释一下吗?由于在单击回调之前对
bindActions
进行了评估,因此回调没有机会在传递给方法时的状态下访问输入
这样做的唯一方法是通过持有引用(就像您聪明地做的那样)锁定状态,或者将整个绑定包装在一个闭包中(非常繁琐和冗余),如下所示:
私有本机void bindActions(JavaScriptObject保存,JavaScriptObject输入)/*-{
(功能(中){
$wnd.$(保存)。单击(函数(){
$wnd.alert($wnd.$(in.size());
});
})(输入);
}-*/;
这都是关于背景的;请记住,在回调中,您指的是函数所有者(即保存按钮)。请参阅有关此主题的详细信息
public class SettingMailPage {
@UiField
ButtonElement save;
@UiField
AnchorElement input;
SettingMailPage()
{
bindActions(save.cast(),input.cast());
}
private native void bindActions(JavaScriptObject save, JavaScriptObject input)
/*-{
$wnd.$(save).click(function () {
$wnd.alert($wnd.$(input).size());//always 0, why?
});
}-*/;
}
private native void bindActions(JavaScriptObject save, JavaScriptObject input)
/*-{
var thatInput=input;
$wnd.$(save).click(function () {
$wnd.alert($wnd.$(thatInput).size());
});
}-*/;