JS实现加载后自动展开所有树节点按钮

在分析报表中,树节点按钮的应用有利于让用户了解数据的架构和关系;而在实际的应用场景中,树节点按钮是不自动展开层级的,而有的用户是需要默认展开一层树节点按钮,或默认展开所有树节点按钮,或通过按钮方式,展开和折叠所有树节点按钮,这时候需要设置加载结束时间,完成树节点按钮的展开。

1、报表设计

具有树节点按钮的分析报表设计如下:

2、JavaScript事件编辑(根据需要选择JavaScript事件):

(一)在分析报表中,添加加载结束事件(默认展开至第二层),代码如下:

//默认展开至第二层

$('.x-treenode-unexpand').eq(0).trigger('click');

(二)在分析报表中,添加加载结束事件(默认展开全部层),代码如下:

//默认全部展开

$('.x-treenode-unexpand').trigger('click');

3、按钮实现全部展开或折叠

在单元格上,添加“超级链接”,分别键入JavaScript事件控制:

展开事件:

$('.x-treenode-unexpand').trigger('click');

折叠事件:

$(".x-treenode-expand").attr("class","x-text fr-widget-click x-treenode-unexpand");
$('.fr-widget-click').eq(0).trigger('click');
$(".tntr").css('display','none');

4、效果图

如上,就可以实现分析报表中,树节点按钮的默认全部展开,或通过点击按钮,实现全部展开和全部折叠。

 

附:博主根据用户需要,还需要额外设置点击后实现行背景的需求;

此处附上在树节点中,冻结行列后,点击行改变行背景色的JavaScript时间:

在加载结束事件中,加入JavaScript代码:

//点击时,改变当前行的背景颜色
$('.tar').click(function(e){
    $('.tar').css({"background":"#F5F5F5"});
    if($(e.target).hasClass('tar')||$(e.target).parent('td').hasClass('tar')){
        $('.selecttr').css({"background":"#F5F5F5"});
        $('.selecttr').removeClass('selecttr');
         var lefttr=$(e.target).closest('tr').attr("id");
        $(e.target).closest('.frozen-table').find("#"+lefttr).find('.tar').addClass('selecttr').css({"background":"#E0E9F2"});
        $(e.target).closest('tr').find('td').addClass('selecttr').css({"background":"#E0E9F2"});
        }
})

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,下面是一个简单的Chrome插件示例,它会在页面加载完成后自动向指定节点插入数据: 1. 创建一个新文件夹,命名为 "my-extension"。 2. 在 "my-extension" 文件夹中创建一个名为 "manifest.json" 的文件,并将以下内容复制到该文件中: ``` { "name": "My Extension", "version": "1.0", "manifest_version": 2, "description": "A simple extension that inserts data into a specific node on a page.", "content_scripts": [ { "matches": [ "<all_urls>" ], "js": [ "content.js" ] } ] } ``` 3. 在 "my-extension" 文件夹中创建一个名为 "content.js" 的文件,并将以下内容复制到该文件中: ``` // Wait for the page to finish loading window.addEventListener("load", function(event) { // Find the target node var targetNode = document.getElementById("target-node-id"); if (targetNode) { // Insert the data targetNode.insertAdjacentHTML("beforeend", "<p>Here is some data!</p>"); } }); ``` 4. 在 "my-extension" 文件夹中创建一个名为 "popup.html" 的文件,并将以下内容复制到该文件中: ``` <!DOCTYPE html> <html> <head> <title>My Extension</title> <script src="popup.js"></script> </head> <body> <h1>My Extension</h1> <p>Click the button to insert data into the target node.</p> <button id="insert-data">Insert Data</button> </body> </html> ``` 5. 在 "my-extension" 文件夹中创建一个名为 "popup.js" 的文件,并将以下内容复制到该文件中: ``` // Find the "Insert Data" button var insertDataButton = document.getElementById("insert-data"); // When the button is clicked, send a message to the content script to insert the data insertDataButton.addEventListener("click", function(event) { chrome.tabs.query({active: true, currentWindow: true}, function(tabs) { chrome.tabs.sendMessage(tabs[0].id, {action: "insertData"}); }); }); ``` 6. 在 Chrome 浏览器中打开 "chrome://extensions/" 页面。 7. 选择 "开发者模式",然后点击 "加载已解压的扩展程序" 按钮。 8. 选择 "my-extension" 文件夹,然后点击 "确定"。 现在,当你在浏览网页时,可以单击插件图标并单击 "Insert Data" 按钮,以在页面中插入数据。请确保将 "target-node-id" 替换为实际要插入数据的节点的 ID。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值