zoukankan      html  css  js  c++  java
  • LigerUI下拉选择列表LigerComboBox中tree的节点初始化默认选中的问题

    问题描述

    用后台的Json传送tree的数据

    前端用js方法来控制选中节点

    此方法存在bug

    实例:

    bug问题:无论设置的默认选中值是多少个,前台checkbox最多只显示选中一个,但是内容框中显示正常

    默认选中的控制代码是:ligerComboBox的 selectValue(XXX)方法或者setValue(XXX)方法,显示情况如下;

    image

    跟了跟源码发现是tree的js写的有问题跟了跟源码发现是tree的js写的有问题

    tree的js里有个selectNode方法

    里面没有做多选的判断,每次调用都会清空其他的已选项

    解决方法一:

    将selectNode方法的最后一个each方法改为以下内容即可解决问题将selectNode方法的最后一个each方法改为以下内容即可解决问题

    $("li", g.tree).each(function ()
                {
                    var treeitem = $(this);
                    var treedataindex = parseInt(treeitem.attr("treedataindex"));
                    var treenodedata = g._getDataNodeByTreeDataIndex(g.data, treedataindex);
                    if (clause(treenodedata, treedataindex))
                    {
                        g.selectNode(this);
                    }
                    else
                    {
                        //修复多选框状态下全部取消选中问题
                        if (!g.options.checkbox) {
                            g.cancelSelect(this, isTriggerEvent);
                        }
                        //g.cancelSelect(this);
                    }
                });
    

    解决方法二:

    更新LigerUI的版本

    此问题在新版本中已经被修复

  • 相关阅读:
    04-Bootstrap的插件
    03-Bootstrap学习
    02-移动端单位介绍
    01 响应式页面-@media介绍,
    14-jQuery补充
    13-jQuery的ajax
    12-事件委托(事件代理)
    11-jQuery的事件绑定和解绑
    10-事件对象
    09-JS的事件流的概念(重点)
  • 原文地址:https://www.cnblogs.com/ixysy/p/6841327.html
Copyright © 2011-2022 走看看