以前一個現在不用的帳號發布的隨筆,現在人肉搬過來吧。
注冊用戶有一段時間了,一直很忙,到現在還沒有寫一篇,忽然覺的一定要花點時間記錄和總結一些東西。好吧,就從這裡開始了。
今天客戶提出要點擊菜單(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>