Gwt 在Chrome中首次单击列表框后,项目不会设置为禁用
这是我的密码:Gwt 在Chrome中首次单击列表框后,项目不会设置为禁用,gwt,Gwt,这是我的密码: listbox.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { serv.getSlotStatusesStrings(clientFactory.getWorkspaceId(), new AsyncCallback<SlotStatusGwtStruct>()
listbox.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
serv.getSlotStatusesStrings(clientFactory.getWorkspaceId(), new AsyncCallback<SlotStatusGwtStruct>() {
@Override
public void onFailure(Throwable caught) {
// TODO Auto-generated method stub
}
@Override
public void onSuccess(SlotStatusGwtStruct result) {
List<String> statusList = Arrays.asList(result.styleName);
int emtyCounter = 0;
boolean passFlag = false;
boolean failFlag = false;
for(String status : statusList){
if(status.equals("empty")){
emtyCounter++;
}else if(status.equals("pass")){
passFlag = true;
}else if(status.equals("fail")){
failFlag = true;
}
}
if(emtyCounter == statusList.size()){
listbox.getElement().<SelectElement>cast().getOptions().getItem(0).setDisabled(true);
}
if(passFlag == false){
listbox.getElement().<SelectElement>cast().getOptions().getItem(1).setDisabled(true);
}
if(failFlag == false){
listbox.getElement().<SelectElement>cast().getOptions().getItem(2).setDisabled(true);
}
}
});
}
});
}
listbox.addClickHandler(新的ClickHandler(){
@凌驾
公共作废一次点击(点击事件){
serv.getSlotStatuseStrings(clientFactory.getWorkspaceId(),新的AsyncCallback()){
@凌驾
失败时的公共无效(可丢弃){
//TODO自动生成的方法存根
}
@凌驾
成功时公共无效(SlotStatusGwtStruct结果){
List statusList=Arrays.asList(result.styleName);
int emtyCounter=0;
布尔passFlag=false;
布尔failFlag=false;
用于(字符串状态:statusList){
if(status.equals(“空”)){
emtyCounter++;
}else if(状态等于(“通过”)){
passFlag=true;
}else if(状态等于(“失败”)){
failFlag=true;
}
}
if(emtyCounter==statusList.size()){
listbox.getElement().cast().getOptions().getItem(0).setDisabled(true);
}
if(passFlag==false){
listbox.getElement().cast().getOptions().getItem(1).setDisabled(true);
}
如果(failFlag==false){
listbox.getElement().cast().getOptions().getItem(2).setDisabled(true);
}
}
});
}
});
}
在Firefox中工作正常,但在Chrome浏览器中,当我第一次单击listbox时,我的所有项目都被启用(根据条件,它们应该被禁用),在我再次单击后,我得到了预期的结果
您能给我一些建议如何解决这个问题。您确定在执行AsyncCallback后启用了它们吗?是的,我确定。暂时我通过将addClickHandler()更改为addMouseOverHandler()解决了这个问题。