jQueryTreeView

本文介绍了一个使用jQuery和AJAX实现动态数据加载及操作的示例。通过具体代码展示了如何发送POST请求到服务器并根据返回的数据更新DOM结构,包括添加、删除节点及修改节点内容等功能。

//--Author:Vincent
$(document).ready(function(){   
//bulid xmlHttpRequest
    var xmlHttp;
    var oClick;//which mouse up
    if(window.ActiveXObject)
    {
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if(window.XMLHttpRequest)
    {
        xmlHttp=new XMLHttpRequest();
    }
    var post="op=2";//bind data from database
    var url=document.location.href;
    xmlHttp.open("POST",url,true);
    xmlHttp.onreadystatechange=callback;
    xmlHttp.setRequestHeader("Content-Length",post.length);
    xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    xmlHttp.send(post);  
        
    //add
    $("#btnAdd").click(function(event){
//        var oUL=document.getElementById("red");
//        var oLI=document.createElement("li");
//        var oInput=document.createElement("input");
//       
//        oInput.setAttribute("class","treenode");
//        oInput.setAttribute("value","New Node");
//        oInput.setAttribute("type","text");
//       
//        oLI.appendChild(oInput);
//        oUL.appendChild(oLI);
        var oNode=oClick;
        var array=new Array();
             
        for(var i=0;i<document.childNodes.length;i++)
        {
            if(oNode.parentNode.parentNode.parentNode.tagName=="LI")
            {
                var oo=oNode.parentNode.parentNode.parentNode.childNodes[1].value;
                array[i]=oo;
                oNode=oNode.parentNode.parentNode;
            }
            else
                break;
        }
        if(array.length==0)
        {
            post="op=1&sort="+oClick.value+"|NewNode1.0|NewNode1.0.0";
        }
        else if(array.length==1)
        {
            post="op=1&sort="+array[0]+"|"+oClick.value+"|NewNode1.0.0";
        }
        else if(array.length==2)
        {
            post="op=1&sort="+array[1]+"|"+array[0]+"|NewNode1.0.0";
        }
       
        //post="op=1&sort=NewNode1.0|NewNode1|NewNode1.0.0";//add new data
        xmlHttp.open("POST",url,true);
        xmlHttp.onreadystatechange=callback;
        xmlHttp.setRequestHeader("Content-Length",post.length);
        xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
        xmlHttp.send(post);
    });
    //delete
    $("#btnDel").click(function(event){
       
        if(confirm('Are you sure to clear or delete?'))
        {  
            var oNode=oClick;
            var array=new Array();
             
            for(var i=0;i<document.childNodes.length;i++)
            {
                if(oNode.parentNode.parentNode.parentNode.tagName=="LI")
                {
                    var oo=oNode.parentNode.parentNode.parentNode.childNodes[1].value;
                    array[i]=oo;
                    oNode=oNode.parentNode.parentNode;
                }
                else
                    break;
            }
            post="op=4&sort=";
           
            for(var i=0;i<array.length;i++)
            {
                post+=array[i]+"|";
               
                if(i==array.length-1)
                {
                    post=post.substring(0,post.length-1)+"|"+oClick.value;
                }
            }
            if(array.length==0)
            {
                alert('Can not to be deleted!');
                return;
            }
            xmlHttp.open("POST",url,true);
            xmlHttp.onreadystatechange=callback;
            xmlHttp.setRequestHeader("Content-Length",post.length);
            xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
            xmlHttp.send(post);
        }
    });
    //web visit callback
    function callback()
    {
        if(xmlHttp.readystate==4)
        {
            if(xmlHttp.status==200)
            {
                display();
            }
            else
            {
                alert("Server Back Status:"+xmlHttp.statusText);
            }
        }
        else//status is not success
        {
            document.getElementById("red").innerHTML="Data Loading";
        }
    }
    function display()
    {
        var index=xmlHttp.responseText.indexOf("<!DOCTYPE");
        var html=xmlHttp.responseText.substring(0,index);
        document.getElementById("red").innerHTML=html;
       
        reset();
    }
       
    function reset()
    {   
        $("#red").treeview({
            animated: "fast",
            collapsed: true,
            unique: true,
            persist: "cookie",
            toggle: function() {
                window.console && console.log("%o was toggled", this);
            }
        });
   
        //double click textbox
        $("#divTree input").dblclick(function(event){
            $(this).addClass("focus");
           
            var oDiv=document.getElementById("divMove");
            oDiv.style.display="none";
        });
        //textbox mouseout
        $("#divTree input").mouseout(function(event){
            $(this).removeClass("focus");
        });
       
        //textbox enter
        $("#divTree input").keydown(function(event){
            if(event.keyCode==13)
            {
                $(this).removeClass("focus");
           
                var oNode=this;
                var array=new Array();
                  
                for(var i=0;i<document.childNodes.length;i++)
                {
                    if(oNode.parentNode.parentNode.parentNode.tagName=="LI")
                    {
                        var oo=oNode.parentNode.parentNode.parentNode.childNodes[1].value;
                        array[i]=oo;
                        oNode=oNode.parentNode.parentNode;
                    }
                    else
                        break;
                }
                post="op=3&sort=";
           
                for(var i=0;i<array.length;i++)
                {
                    post+=array[i]+"|";
               
                    if(i==array.length-1)
                    {
                        post=post.substring(0,post.length-1)+"|"+this.value+"|"+this.defaultValue;
                    }
                }
                if(array.length==0) post+=this.value+"|"+this.defaultValue;
                xmlHttp.open("POST",url,true);
                xmlHttp.onreadystatechange=callback;
                xmlHttp.setRequestHeader("Content-Length",post.length);
                xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
                xmlHttp.send(post);
            }
        });
   
        $(".treenode").mouseup(function(event){
       
            var oDiv=document.getElementById("divMove");
       
            oDiv.style.left=event.clientX;
            oDiv.style.top=event.clientY;
            oDiv.style.display="block";
       
            oClick=$(this).get(0);
            //alert(event.clientY+" "+event.clientX);
       
        });
        $("#divTree").mouseover(function(event){
            var oDiv=document.getElementById("divMove");
            oDiv.style.display="none";
        });
    }
});

Nano-ESG数据资源库的构建基于2023年初至2024年秋季期间采集的逾84万条新闻文本,从中系统提炼出企业环境、社会及治理维度的信息。其构建流程首先依据特定术语在德语与英语新闻平台上检索,初步锁定与德国DAX 40成分股企业相关联的报道。随后借助嵌入技术对文本段落执行去重操作,以降低内容冗余。继而采用GLiNER这一跨语言零样本实体识别系统,排除与目标企业无关的文档。在此基础上,通过GPT-3.5与GPT-4o等大规模语言模型对文本进行双重筛选:一方面判定其与ESG议题的相关性,另一方面生成简明的内容概要。最终环节由GPT-4o模型完成,它对每篇文献进行ESG情感倾向(正面、中性或负面)的判定,并标注所涉及的ESG具体维度,从而形成具备时序特征的ESG情感与维度标注数据集。 该数据集适用于多类企业可持续性研究,例如ESG情感趋势分析、ESG维度细分类别研究,以及企业可持续性事件的时序演变追踪。研究者可利用数据集内提供的新闻摘要、情感标签与维度分类,深入考察企业在不同时期的环境、社会及治理表现。此外,借助Bertopic等主题建模方法,能够从数据中识别出与企业相关的核心ESG议题,并观察这些议题随时间的演进轨迹。该资源以其开放获取特性与连续的时间覆盖,为探究企业可持续性表现的动态变化提供了系统化的数据基础。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值