zoukankan      html  css  js  c++  java
  • 我写的 jQuery代码

    <!--   引入jQuery -->
    <script src="jquery-1.3.2.min.js" type="text/javascript"></script>
    <script type="text/javascript" language="javascript">
    function MM_preloadImages() { //v3.0
    var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
        var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
        if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
    }
    
            $(function() {
                var subshowtime = "";   //变量,“2秒后自动隐藏”的对象赋值给这个变量
                var urlparamsub = "";      //接收从上一链接的页面传递过来的参数1 子菜单(span)
                var urlparammain = ""     //接收从上一链接的页面传递过来的参数2 主菜单(图片)id
                var $imghoverobj = "";       //记录鼠标悬停的图片对象
                var $subspanhoverobj = "";   //记录鼠标悬停在某个子菜单(span)的对象
                var $subspanchkedobj = ""; //记录点击的子菜单的span对象
                // 页面跳转后接收传递的参数,并初始化一些参数:选中的子菜单和主菜单
                //根据url传来的参数,对主菜单和子菜单的处理
                // 功能:1,将点击的主菜单样式变成点击后的样式。2,点击的主菜单对应的子菜单(div)显示。
                //       3,显示的子菜单里的点击的子菜单(span)的显示
                function getUrlParameter() {
       
                    var strHref = "";
                    //接收当前URL的信息,注意 这里加 parent,获得 整个框架的url
                    strHref = parent.document.location.toString();  
                    var intPos = strHref.indexOf("?");     //取得"?"的位置 
                    var urlparam = strHref.substr(intPos + 1); //获取到右边的参数部分"f=..&page=..."
                    intPos = urlparam.indexOf("&");
                    urlparamsub = urlparam.substr(2, intPos - 2); //子菜单(span)id :spanimgsolutions2
                    urlparammain = urlparam.substr(intPos + 6); //主菜单的名字,其中前面的img被省略了
                    if (urlparamsub == "") { //页面第一次打开的时候,参数设定
                        urlparamsub = "spanimghome";   
                        urlparammain = "home";        
                    }
                    urlparammain = "img" + urlparammain + "id"; //主菜单(图片)的id
                    $subspanchkedobj = $("#" + urlparamsub); //记录点击的子菜单的span对象
                    imgClickStyle($("#" + urlparammain));     // 1
                    imgMatchSubShow($("#" + urlparammain)); //2 和 3
        
                }
                getUrlParameter(); //页面加载的时候直接运行
                
                //===================================================================================================================\\
                //|| 鼠标点击某个子菜单(span)的事件,传递的参数:1,f:点击的子菜单(span)的id . 2,主菜单的名字,其中前面的img被省略了||
                //===================================================================================================================\\
                $("#subMenu span").click(function() {
                    SubSpanclickedStyle($(this)); //子菜单(即span)点击后的样式
                    var f = "";      //子菜单的名字
                    var varpage = "";   //主菜单的名字 
                    var varhref = $(this).parent().attr("href");
                    var varhrefspanid = $(this).attr("id"); //这里是span的id e.g : spanimgsolutions2
                    f = $(this).text(); //暂时没用 span 里的 text
                    varpage = $(this).parent().parent().attr("id").substr(3); //solutions
                    window.open(varhref + "?f=" + varhrefspanid + "&page=" + varpage, "_parent");
                })
                //鼠标悬停在主某一菜单上(一个图片上)
                $("#imgDiv :not(.imgblank)").hover(function() {
                    allHide(); //先将所有的子菜单隐藏
                    if (subshowtime != "")
                        clearTimeout(subshowtime); //停止2秒后自动隐藏
                    if ($imghoverobj != "") {   //上次鼠标悬停的菜单,恢复原来的图片
                        imgOriginalStyle($imghoverobj); //上次悬停的菜单恢复原来的src
                    }
                    imgHoverStyle($(this)); //悬停时候图片的新src属性
                    if ($("#" + urlparammain).attr("id") == $(this).attr("id")) {
                        imgClickStyle($(this));     //保持点击后的样式
                    }
                    //this 对应的子菜单显示,及被选中的子菜单的样式的改变
                    imgMatchSubShow($(this));
                    $imghoverobj = $(this); //鼠标悬停的图片对象
                }, function() {   // 鼠标移开后(与上面的是联合事件)
                    var varthisobj = $(this).attr("class"); //从主菜单的属性class 获得子菜单的id(认为设定主菜单class属性值==对应该子菜单的id)
                    var thisobj = document.getElementById(varthisobj); //获得子菜单的对象(子菜单的div)
                    var $hiddiv = $(thisobj); //DOM 对象 转化成 Jquery 对象, $hiddiv 为 点击的主菜单对应的子菜单(div)对象
                    subshowtime = setTimeout(function() { subDivHidAnChkedShow($hiddiv) }, 2000);   //2秒后自动隐藏及点击的菜单显示
                });
    
                $("#imgDiv :not(.imgblank)").click(function() {   //点击主菜单事件
                    //主菜单点击后的样式
                    imgClickStyle($(this));
                    //imgcontactid   --- spanimgcontact
                    var varid = $(this).attr("id");
                    var indexvar = varid.lastIndexOf("id");
                    var temp = varid.slice(0, indexvar); //取出字符串的中间部分 “contact”
                    var subid = "span" + temp;       //取得子菜单的id
                    $("#" + subid).triggerHandler("click");
                })
                //-----------------------下面是对子菜单的处理--------------◆------------------\\
                $("#subMenu div").hover(function() {   //鼠标悬停在子菜单(div层)的事件
                    if (subshowtime != "")
                        clearTimeout(subshowtime);
                    $(this).show();
                }, function() {     //鼠标离开子菜单(div层)的事件
                    var $hiddiv = $subspanhoverobj.parent().parent();
                    subshowtime = setTimeout(function() { subDivHidAnChkedShow($hiddiv) }, 2000);   //2秒后自动隐藏及点击的菜单显示
                });
                $("#subMenu span").hover(function() {      //鼠标悬停在某个子菜单的事件
                    if ($subspanchkedobj.attr('id') == $(this).attr('id')) { //如果this 是有点击过的子菜单
                        SubSpanclickedStyle($(this));
                    }
                    else {
                        subSpanHoverStyle($(this)); //鼠标悬停的span的样式
                        $subspanhoverobj = $(this);   //记录鼠标悬停的span的对象
                    }
                }, function() {       //鼠标离开某个子菜单的事件
                    if ($subspanchkedobj.attr('id') == $(this).attr('id')) { //如果this 是有点击过的子菜单
                        SubSpanclickedStyle($(this));
                    } else {
                        subSpanOriginalStyle($(this)); //恢复span 最原始的样式
                    }
                });
                //=====================================================================\\
                //|| 某一子菜单(div)2秒后自动隐藏,被点中的主菜单对应的子菜单显示   ||
                //======================================================================\\
                function subDivHidAnChkedShow($subdiv) {
                    $subdiv.hide();         //子菜单隐藏
                    if ($subspanchkedobj != "") //如果有子菜单(span)被选中,则该子菜单对应的父级的父级的菜单(div)显示
                        $subspanchkedobj.parent().parent().show();
                }
                //=========================================\\
                //|| 某一主菜单(即图片)最原始的样式 ||
                //=========================================\\
                function imgOriginalStyle($imgObj) {
                    var Num1 = $imgObj.attr("src").indexOf("_"); // “_”的位置,(js 下标从0开始)
                    var NewStrUrl1 = $imgObj.attr("src").substring(0, Num1 + 1);    //截取 “_”之前的字符串
                    var NewSrc1 = NewStrUrl1 + "up.gif";   //原来的图片
                    $imgObj.attr("src", NewSrc1);   // 菜单恢复原来的src
                }
                //==========================================\\
                //|| 某一主菜单(即图片)鼠标悬停时的样式 ||
                //==========================================\\
                function imgHoverStyle($imgObj) {
                    var Num = $imgObj.attr("src").indexOf("_"); // “_”的位置,(js 下标从0开始)
                    var NewStrUrl = $imgObj.attr("src").substring(0, Num + 1);    //截取 “_”之前的字符串
                    var NewSrc = NewStrUrl + "over.gif"; //记下this的src
                    $imgObj.attr("src", NewSrc);     //悬停时候图片的新src属性
                    $imgObj.css("cursor", "pointer"); //鼠标变成手型    
                }
                //======================================\\
                //|| 某一主菜单(即图片)点击后的样式 ||
                //======================================\\
                function imgClickStyle($imgObj) {
                    var ckNum = $imgObj.attr("src").indexOf("_"); // “_”的位置,(js 下标从0开始)
                    var ckNewStrUrl = $imgObj.attr("src").substring(0, ckNum + 1);    //截取 “_”之前的字符串
                    var ckNewSrc = ckNewStrUrl + "there.gif";     //点击后的图片src
                    $imgObj.attr("src", ckNewSrc);    //点击图片的新src属性
                    $imgObj.css("cursor", "auto"); //鼠标变成手型
                }
                //========================================\\
                //||点击主菜单,对应的子菜单(div)的显示||
                //========================================\\
                function imgMatchSubShow($imgobj) {
                    var varthisobj = $imgobj.attr("class"); //从主菜单的属性class 获得子菜单的id(认为设定主菜单class属性值==对应该子菜单的id)
                    var thisobj = document.getElementById(varthisobj); //获得子菜单的对象(子菜单的div)
                    $thisobj = $(thisobj); //DOM 对象 转化成 Jquery 对象
                    $thisobj.show();     //子菜单显示
                    //如果“子子菜单(span)”对应的父级主菜单是显示的子菜单(div)
                    if ($subspanchkedobj.parent().parent().attr("id") == $thisobj.attr("id"))
                        SubSpanclickedStyle($subspanchkedobj);    //点击的子菜单的span对象显示
                }
                //========================================\\
                //|| 某一子菜单(即span)点击后的样式   ||
                //========================================\\
                function SubSpanclickedStyle($subspanobj) {
       
                    if ($subspanobj.text().length != 0) {   //筛选,因为页面上有2个主菜单对应的子菜单内容知识个空格
                        $subspanobj.css("background-color", "#112277");
                        $subspanobj.css("color", "#ffffff");
                    }
                }
                //==========================================\\
                //|| 某一子菜单(即span)鼠标悬停的样式   ||
                //==========================================\\
                function subSpanHoverStyle($subspanobj) {
                    if ($subspanobj.text().length != 0) {   //筛选,因为页面上有2个主菜单对应的子菜单内容知识个空格
                        $subspanobj.css("background-color", "#7788bb"); //背景颜色变换
                        $subspanobj.css("color", "#ffffff");    //字体颜色发生变化
                    }
                }
                //==========================================\\
                //|| 某一子菜单(即span)最原始的样式   ||
                //==========================================\\
                function subSpanOriginalStyle($subSpanObj) {
                    $subSpanObj.css("background-color", "#bbccee");
                    $subSpanObj.css("color", "#666666");
                }
            }) // “$(function() { ” 的结果标签
            function allHide() {   //全部的子菜单隐藏,除了点击后的主菜单对应的子菜单
                $("#subMenu div").hide();
            }
        </script>

    作者:沐雪
    文章均系作者原创或翻译,如有错误不妥之处,欢迎各位批评指正。本文版权归作者和博客园共有,如需转载恳请注明。
    如果您觉得阅读这篇博客让你有所收获,请点击右下方【推荐】
    找一找教程网-随时随地学软件编程 http://www.zyiz.net/

  • 相关阅读:
    Java使用jxl修改现有Excel文件内容,并验证其是否对公式的结果产生影响
    Java使用MyBatis的ScriptRunner执行SQL脚本
    Linux下批量解压.Z格式文件
    Java中将一个反斜杠转换成两个反斜杠
    mysql线上操作常用命令
    MySQL主从不一致修复
    slave_exec_mode参数对主从复制的影响
    ssh访问跳过RSA key"yes/no"验证
    k8s更新Pod镜像
    Go 延迟函数 defer 详解
  • 原文地址:https://www.cnblogs.com/puzi0315/p/2658279.html
Copyright © 2011-2022 走看看