我寫的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>
相關文章
- 我的’jQuery’和jQueryjQuery
- 我寫的 Python 程式碼,同事都說好Python
- Rust能讓我寫出好的程式碼 - RedditRust
- 拋開 Vue、React、JQuery 這類第三方js,我們該怎麼寫程式碼?VueReactjQueryJS
- 我是如何將業務程式碼寫優雅的
- 我在阿里寫程式碼學會的六件事阿里
- GitHub 新出的功能!可以幫我們自動寫程式碼Github
- jQuery 學習筆記:jQuery 程式碼結構jQuery筆記
- js選項卡不會寫?JQuery一行程式碼搞定!JSjQuery行程
- jQuery打字機效果程式碼jQuery
- 對不起,我錯了,這程式碼不好寫
- Jquery實現的高亮效果程式碼分享jQuery
- 我們應該如何編寫高質量的前端程式碼前端
- 我們一直談論“寫程式碼”,但你會“讀程式碼”嗎?
- 防禦性程式設計失敗,我開始最佳化我寫的多重 if-else 程式碼程式設計
- 一個巧合,我把文件寫進了程式碼裡
- jQuery操作checkbox選擇程式碼jQuery
- 我在華為寫了13年程式碼的一些感悟
- 程式碼模板 | 我的程式碼沒有else
- Jquery會死嗎?我為什麼不用vue寫富文字!jQueryVue
- 我的程式碼和註釋都寫的像坨屎,那又怎麼樣?
- [提問交流]外掛商店 ( 你提需求 , 我寫程式碼 )
- 純後端如何寫前端?我用了低程式碼平臺後端前端
- 理解了物件導向,我突破了地元境,程式碼寫的真棒!物件
- 我總結了寫出高質量程式碼的12條建議
- shell程式設計學習筆記(一):編寫我的第一段程式碼程式設計筆記
- 補全一段jQuery程式碼jQuery
- jQuery.map()方法程式碼例項jQuery
- 來學著寫自己的“jQuery”jQuery
- 再見JQuery,我的老朋友jQuery
- jquery控制登入框涉及到的程式碼jQuery
- .Net Core——用程式碼寫程式碼?
- 這兩年多我寫PHP業務程式碼的方式是如何進化的PHP
- 我只想深耕技術寫程式碼,公司卻把我推上管理崗,怎麼辦?
- 不用寫程式碼的爬蟲爬蟲
- 我理解的Clean程式碼 - macerubMac
- 誰動了我的程式碼!?
- 寫了 50 萬行 Go 程式碼後,我明白這些道理Go
- 我很久沒寫程式碼了,但我是個好架構師架構