第一次写JQuery插件--用于显示子菜单
其实本不应该是一个插件的,主要是为了在鼠标点击处弹出个层,不过找了好多demo都不能正常运行,直到找到这个鼠标右键菜单的demo.
于是稍加修改,就成了现在这个样子.
要能使用,限制有点多,其实也可以根据代码修改,首先是parentDB必须有id,其次在parentDB里必须放隐藏的菜单,subDB.
主要是满足自己项目的需求,做了个demo,效果还不错,凑合着用吧~~留存一下,以后写Jquery插件也就有参考了.
< script src="jquery-1.8.0.js" type="text/javascript"></ script > < script type="text/javascript"> $(document).ready(function () { $(".parentDB").each(function(index, element) { $(this).SubMenu(); }); }); </ script > < style > ul, li{ list-style:none; } .dblist { position:relative; z-index:1; width:450px; } .parentDB { width:150px; height:32px; line-height:32px; position:fixed; text-align:center; cursor:default; z-index:1; float:left; } .subDB { display:none; } .TempSubDBDiv { position:absolute; left:150px; top:0px; width:150px; text-align:left; cursor:default; background-color:#fff; border:1px solid #ccc; padding:8px; z-index:3; } </ style > < table class="dblist"> < tr > < td class="parentDB" id="1">< a >国研网</ a > < div class="subDB"> < div class="sub">国研网-经济版1</ div > < div class="sub">国研网-全能版1</ div > < div class="sub">国研网-财经版1</ div > </ div > </ td > < td class="parentDB" id="21">< a >国研网</ a > < div class="subDB"> < div class="sub">国研网-经济版2</ div > < div class="sub">国研网-全能版2</ div > < div class="sub">国研网-财经版2</ div > </ div > </ td > < td class="parentDB" id="13">< a >国研网</ a > < div class="subDB"> < div class="sub">国研网-经济版3</ div > < div class="sub">国研网-全能版3</ div > < div class="sub">国研网-财经版31</ div > </ div > </ td > </ tr > < tr > < td class="parentDB" id="31">< a >国研网</ a > < div class="subDB"> < div class="sub">国研网-经济版41</ div > < div class="sub">国研网-全能版41</ div > < div class="sub">国研网-财经版41</ div > </ div > </ td > < td class="parentDB" id="122">< a >国研网</ a > < div class="subDB"> < div class="sub">国研网-经济版51</ div > < div class="sub">国研网-全能版51</ div > < div class="sub">国研网-财经版51</ div > </ div > </ td > < td class="parentDB" id="321">< a >国研网</ a > < div class="subDB"> < div class="sub">国研网-经济版71</ div > < div class="sub">国研网-全能版71</ div > < div class="sub">国研网-财经版71</ div > </ div > </ td > </ tr > </ table > < script > $(function(){ document.onmousemove=mouseMove;//记录鼠标位置 }); var mx=0,my=0; function mouseMove(ev){Ev=ev||window.event;var mousePos=mouseCoords(Ev);mx=mousePos.x;my=mousePos.y;} function mouseCoords(ev){ if(ev.pageX||ev.pageY){return{x:ev.pageX,y:ev.pageY};} return{x:ev.clientX,y:ev.clientY+$(document).scrollTop()}; } $.fn.extend({SubMenu: function(){ var id = "TempSubDBDiv_"+$(this).attr("id"); alert(id); if (!$("#"+id)[0]){ parentDB = $(this); var TempSubDBDivhtml = "< div id='"+id+"' class='TempSubDBDiv'>"+ parentDB.children(".subDB").html()+"</ div >"; $("body").append(TempSubDBDivhtml).find("#" + id).hide(); $(".sub").hover(function(){$(this).addClass("on"); },function(){ $(this).removeClass("on");}); } return this.each(function(){ $(this).click(function(){ var mw=$('body').width(),mhh=$('html').height(),mbh=$('body').height(), w=$('#'+id).width(),h=$('#'+id).height(), mh=(mhh>mbh)?mhh:mbh;//最大高度 比较html与body的高度 if(mh< h +my){my=mh-h;}//超 高 if(mw<w+mx){mx=mw-w;}//超 宽 $(".TempSubDBDiv").hide(); $("#"+id).hide().css({top:my,left:mx}).show(); }); }); } }); </script> |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端