註冊用戶有一段時間了,一直很忙,到現在還沒有寫一篇,忽然覺的一定要花點時間記錄和總結一些東西。好吧,就從這裡開始了。 今天客戶提出要點擊菜單(TreeView實現的)的父級節點時,展開節點。心想這個應該是很常見的功能吧,特意google了一下,發現大部分是將的不是js實現的,有些js實現的寫的麻煩,
註冊用戶有一段時間了,一直很忙,到現在還沒有寫一篇,忽然覺的一定要花點時間記錄和總結一些東西。好吧,就從這裡開始了。
今天客戶提出要點擊菜單(TreeView實現的)的父級節點時,展開節點。心想這個應該是很常見的功能吧,特意google了一下,發現大部分是將的不是js實現的,有些js實現的寫的麻煩,乾脆自己寫一個吧,應該不難的。
首先思路是,,讓文本點擊的時候執行左邊‘+’號的事件,查看源碼看到,‘+’號的事件是:
javascript:TreeView_ToggleNode(ctl00_body__menuTree_Data,0,document.getElementById('ctl00_body__menuTreen0'),' ',document.getElementById('ctl00_body__menuTreen0Nodes'))
Ok,接下來就是篩選出所有的父級節點,加上處理事件就ok了,下麵是完整代碼:
<script type="text/javascript"> $().ready(function() { $("img[src$=tv_NoExpend.jpg]").each(function()//篩選出所有的父級node { //ctl00_body__menuTreet4i//父級node的id是這樣的規則:ctl00_body__menuTreet加id加i var id = $(this).parent().attr("id").replace("ctl00_body__menuTreet","").replace("i",""); var nId = 'ctl00_body__menuTreen'+id; BindExpandJs($("#ctl00_body__menuTreet"+id+"i"),nId);//給‘文件夾’圖片綁定事件 BindExpandJs($("#ctl00_body__menuTreet"+id),nId); //給’文本節點’綁定事件 }); }); function BindExpandJs(obj,nId) { $(obj) .css("cursor","pointer") .removeAttr("href") .click(function() { TreeView_ToggleNode(ctl00_body__menuTree_Data,0,document.getElementById(nId),' ',document.getElementById(nId+'Nodes')); }); } </script>