[]list的selectHandler属性连续点击同一个item不能重复接收事件

    使用的是引擎示例中的代码:https://layaair.ldc.layabox.com/demo/?category=2d&group=UI&name=List 
  
    list.selectEnable = true;
    list.selectHandler = new Handler(this, onSelect);
 
     function onSelect(index)
    {
        alert("当前选择的索引:" + index);
    }
     第一次点击时有事件响应:
111.png

 
    再次点击(不要点击其它的列表),就不会有响应事件:
222.png

 
希望能解决这个问题,是有这个需求的,比如list在A界面,选中后跳到B界面,返回后,再次点击同一行就无法再次进入,尤其是当list还只有1行时,就无法再次看到B界面。
 
 
 
    
 
 
已邀请:

w1114367261

赞同来自:

list.selectHandler = new Handler(this, onSelect);//设置 list 改变选择项执行的处理器。
selectHandler只有你改变选择项的时候才执行一次哦!

Giealxon

赞同来自:

这个问题没人解决吗
 

han123peng

赞同来自:

我自己解决了,mouseHandler,可以接收所有事件,在这里面判断是否有点击事件。

dz5566

赞同来自:

改源码方案可以这样:
laya.ui.js改成这样即可,去掉判断if (this._selectedIndex !=value)
    __getset(0,__proto,'selectedIndex',function(){
        return this._selectedIndex;
        },function(value){
        //if (this._selectedIndex !=value){
            this._selectedIndex=value;
            this.changeSelectStatus();
            this.event(/*laya.events.Event.CHANGE*/"change");
            this.selectHandler && this.selectHandler.runWith(value);
            this.startIndex=this._startIndex;
        //}
    });

达尔文

赞同来自:

本来select事件就是这么设计的,你若想要每次点击都触发,自己给元素注册一个click事件啊(或者将事件委托给父元素),能不改源码尽量别改。

要回复问题请先

商务合作
商务合作