[LayaAir 2.0]list方法onSelect失效
情况是这样的:
使用list做图片选择栏,代码如下:
onClickChooseIcon函数触发后,会显示图片选择栏(list),点击其中某个图片后,进入onSelect函数,执行后,选择栏消失,一切正常。
第二次触发onClickChooseIcon函数,显示图片选择栏(list),点击其中某个图片后,无任何反应,断点调试发现不会进入onSelect函数,这是什么问题导致的?
使用list做图片选择栏,代码如下:
onClickChooseIcon() {
this.imgList.visible = true;
this.imgListBg.visible = true;
this.reqImage = this.iconImg;
this.imgList.vScrollBarSkin = '';
this.imgList.selectEnable = true;
this.imgList.array = listArr;
this.imgList.renderHandler = new Laya.Handler(this, this.onRender);
this.imgList.selectHandler = new Laya.Handler(this, this.onSelect);
}
onSelect(index) {
this.reqImage.skin = listArr[index].img.skin;
if (defaultImgs[this.reqImage.skin]) {
this.reqImage["guid"] = defaultImgs[this.reqImage.skin];
}
this.imgList.visible = false;
this.imgListBg.visible = false;
}
onClickChooseIcon函数触发后,会显示图片选择栏(list),点击其中某个图片后,进入onSelect函数,执行后,选择栏消失,一切正常。
第二次触发onClickChooseIcon函数,显示图片选择栏(list),点击其中某个图片后,无任何反应,断点调试发现不会进入onSelect函数,这是什么问题导致的?
没有找到相关结果
已邀请:
1 个回复
群主爸爸
赞同来自:
“onSelect必需在selectedIndex发生变动后才会触发,你可以简单点的处理,就是在onSlect函数中把imgList.selectedIndex =-1” ,
清楚的说明了我的问题原因,因为我一直点选同一张图片,index相同没有变化,所以导致没有触发onSelect函数,这里贴上API文档说明:
另外补充一个小技巧,设置selectedIndex =-1后,由于此时index也发生了改变(变成-1),会导致触发onSelect函数,此时可以在onSelect函数中加上代码: