crazydreamboy1989 2014-07-11 02:42 采纳率: 0%
浏览 2474

jquery easyyui treegrid 分层加载数据后,子节点的数据无法选中

jquery easyyui treegrid 分层加载数据后,子节点的数据无法选中并且不能触发onclickcell事件。
本人用 easyyui 不长时间,在网上也没有找到合适的答案,请高手解释一下,非常感谢。
详细如下图:
CSDN移动问答

后台js报错为
Uncaught TypeError: Cannot read property 'STATUS' of null jquery.easyui.min.js:7872
(anonymous function)jquery.easyui.min.js:7872
(anonymous function)jquery.easyui.min.js:10049
x.event.dispatchjquery.min.js:5
y.handle

请高手帮忙解决一下,非常感谢!
点击 维保客户下面的子节点,不能选中该节点,并且不能触发这个节点上的onclickcell事件。

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-02 06:40
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这个问题是由于easyUI在处理树形结构时对子节点进行了特殊处理。为了使子节点能够被选择和触发onclickcell事件,你需要确保你的JavaScript代码能够访问到子节点。

    首先,检查你的父节点是否有正确的子节点:

    if($("#subnode").find("li").length > 0){
        // 找到了子节点
    }
    

    然后,你可以使用$(this).parent().children(".child")来获取所有子节点,然后遍历这些节点并调用.click()方法来触发onclickcell事件:

    var node = $(this);
    while(node.parent()){
        if(node.parent().hasClass('child')){
            node.parent().children('.child').each(function(){
                $(this).click();
            });
        }
        else{
            break;
        }
        node = node.parent();
    }
    
    // 或者使用jQuery插件
    $.fn.treegrid.on('click', '.child', function() {
        // 这里添加你想要的行为
    });
    

    这样,即使父节点没有直接包含子节点,当用户点击子节点时,整个父节点也会被选中,同时也能触发onclickcell事件。

    注意:以上代码中的.find("li").children(".child")可能需要根据实际情况进行调整,具体取决于你的页面布局。

    评论

报告相同问题?