JS中声明对象,调用方法加载树形菜单的实例
来源:互联网 发布:c语言 逆波兰算法 编辑:程序博客网 时间:2024/05/17 03:02
html:
<!DOCTYPE HTML><html><head><meta charset="utf-8"><title>Items</title><link rel="stylesheet" href="../css/reset.css" type="text/css"/><link rel="stylesheet" href="../css/yoyee.otk2.css" type="text/css"/><link rel="stylesheet" href="../css/items.css" type="text/css"/><link rel="stylesheet" href="../css/material-design-font-icon.css" type="text/css"/></head><body><div class="wrap" id="otkBox"><div class="otk-lft" id="otk-lft"><div class="otk-title"><h1>设备信息</h1><div class="sec-act-box"><ul class="m3-acts"><li id="otk-search" title="查询"><i class="mdi ico-search"></i></li><li id="otk-reload" title="刷新列表"><i class="mdi ico-refresh"></i></li></ul></div></div><ul class="otk-list-box" id="otk-list-box"></ul></div></div><script src="../lib/jquery.js"></script><script src="../js/yoyee.otk2.js"></script><script>$(document).ready(function(){otk.init({renderTo:"otkBox",list:"findTreeforCompy.action",listWidth:350,itemClick:function(obj){showItem(obj);},autoClick:id});});</script></body></html>
JS:
window.otk = {init:function(j){this.box = $("#otk-lft");this.body = $("#otk-body");this.frame = $("#otk-frame");this.listBox = $("#otk-list-box");this.itemClick = j.itemClick;this.groupEvent = j.groupEvent;this.listUrl = j.list;//this.target = j.target;this.firstLoading = true;this.activingItem = "";this.autoClick = j.autoClick;this.itemTemp = $("<li><div><i class='otk-dot mdi ico-chevron-right'></i><span class='otk-item'></span></div></li>");this.tempInfo = $("<li></li>").addClass("otk-temp");this.infoBox = $("#otk-info");//alert(j.listWidth);if(j.listWidth){this.box.css({"width":j.listWidth});this.body.css({"left":j.listWidth});}otk.build();this.reload = $("#otk-reload");this.reload.show().click(function(){otk.reloadlist();});$("#otk-search").show().click(function(){alert("Find something... ");});},build:function(){$.getJSON(otk.listUrl).done(function(json){otk.json = json;otk.listBox.addClass("deep-0");otk.buildItems(json.items,otk.listBox,0);}).fail(function(){alert("Get json data error!");});},buildItems:function(j,box,deep){var box = box;var deep = deep;var itml = j.length;$.each(j,function(i){var gj = j[i];var li = otk.itemTemp.clone().appendTo(box);if(deep>0){$("<span class='lh'></span>").appendTo(li);var lv1 = $("<span class='lv1'></span>").appendTo(li);if(i==itml-1) lv1.addClass("end");}//alert(itml+"|"+i);var div = li.find("div");var itm = li.find(".otk-item");var dot = li.find(".otk-dot");itm.text(gj.title).attr("title",gj.title).data("json",gj);//.attr("id","g_"+gj.id);var hasSubItems = false;if("items" in gj){if(gj.items.length>0)hasSubItems = true;}if(gj.type!="group"){itm.addClass("ed").click(function(){otk.itemClick($(this));otk.listBox.find("span.otk-item.active").removeClass("active");$(this).addClass("active");});}if(hasSubItems){li.addClass("expand");$("<span class='lv2'></span>").appendTo(li);var sbox = $("<ul></ul>").addClass("otk-sub-list").addClass("deep-"+deep+1).appendTo(li);dot.addClass("e").click(function(){var pli = $(this).closest("li");if(pli.hasClass("expand")){sbox.slideUp(100,function(){pli.removeClass("expand");});}else{pli.addClass("expand");sbox.slideDown(100);}});if(gj.type=="group"){itm.click(function(){dot.click();});}otk.buildItems(gj.items,sbox,deep+1);}else{/*div.click(function(){otk.listBox.find("div.active").removeClass("active");$(this).addClass("active");var url = otk.target+"?"+gj.id;otk.frame.attr("src",url);});*/}if(gj.id == otk.autoClick){itm.click();itm[0].scrollIntoView();}});},pushInfo:function(msg){otk.infoBox.html(msg);//.show();},newItem:function(){otk.frame.attr("src",otk.addNew+"?0");otk.listBox.find("li.active").removeClass("active");},reloadlist:function(){//alert("reloading");otk.reload.find("i").addClass("fa-spin");//.delay("2000").removeClass("fa-spin");//otk.cdt.trigger("change");setTimeout(function(){otk.reload.find("i").removeClass("fa-spin");},"2000");},loading:function(o){o.closest("ul").find("li.active").removeClass("active");o.addClass("active");otk.activingItem = o;otk.frame.attr("src",otk.target+"?"+o.data("json").id);otk.pushInfo("project url:"+otk.target+"?"+o.data("json").id);}}$.ajaxSetup ({cache: false //close AJAX cache});
阅读全文
0 0
- JS中声明对象,调用方法加载树形菜单的实例
- JS 声明对象的方法
- js中树形菜单的实现
- WebView加载html代码,js脚本中调用android对象的方法...
- 利用js加载dhtmlXTree的树形菜单例子
- Ajax JS Tree 动态加载树形菜单
- js 页面加载树形菜单结构
- .js文件中是可以调用所引入页面上声明的js方法的
- 简单的js树形菜单
- Java中方法的声明与调用
- 在js对象中定义属性和方法的实例。
- 波哥学JAVA,定义类 声明属性 创建对象 实例化对象 对象调用属性或者方法
- Js中调用new方法生成对象的过程
- 黑马程序员-OC中对象方法的声明与调用(多个参数)
- JS 面向对象,以及静态方法与实例方法的调用区别
- JavaScript面向对象编程之方法的声明与调用
- 根据字符串调用对象实例的方法
- js入门实例の构造函数/方法的定义和调用/原型对象
- Swift 下开启warning提示方法
- 8
- -128在内存中如何存储
- LC的课后辅导
- web学习笔记12-移动端简易电梯效果
- JS中声明对象,调用方法加载树形菜单的实例
- 9
- sql的select查询添加一个虚拟字段进去
- 字符串缓冲池分析
- C语言学习之预编译指令#include详解
- Linux Centos 6.6搭建SFTP服务器
- js 数组常用方法,数组的拷贝(不影响原数组),数组相等
- js当滚动条即将到达底部自动加载数据
- 递归