我有一個正常運行的jQuery腳本運行良好,這意味着它的目的。如何使這個工作Java腳本更有效
現在的問題是:如何使這個腳本更有效率?
當用戶將鼠標懸停(懸停)某個帶有ID的HTML5分段標籤時,該腳本將變爲活動狀態。此時,腳本從包含子菜單列表的下級導航標籤中移除名爲「noDisplay」的現有類,因此內容對用戶可見。這個子菜單列表可能是三到四層。子菜單保存在類(subMenu1,subMenu2,subMenu3,subMenu4等)中。 該腳本被編寫爲單獨提供每個給定的部分ID及其子級別。
基本上,腳本通過在鼠標懸停時刪除類「noDisplay」與DOM進行交互,並在鼠標離開時恢復相同的類。 (試圖給一個明確的解釋。如果沒有,請詢問。)
這裏是一個的jsfiddle:enter link description here
我希望有人能提出一個方法,以更有效地做到這一點。 可能包含更多部分(#ID's)和子菜單級別(每個級別有一個班級)。
使用CSS屬性的display:none;'和'display:block'將是最簡單的解決方案,但這是不需要,因爲搜索機器人我決定跳過標記爲用戶或屏幕閱讀器不可見的內容。這裏使用的「NoDisplay」類保持內容對用戶不可見,並保持屏幕閱讀器的可讀性(從而保持大多數搜索機器人)。
因此,基本上腳本功能保持不變,直到刪除並在懸停時添加「noDisplay」類。 我們的目標是獲得效率更高的腳本,它可以用於每個部分的實例變量,而不是爲每個新部分編寫代碼,從而擴展當前腳本。
//section1$("#section1 .NavUL1 .subMenu1").hover(function(){
$(".NavUL2").removeClass("noDisplay"); //display
},function(){
$(".NavUL2").addClass("noDisplay"); //no display
});
$("#section1").hover(function(){
$("#section1 .NavUL1").removeClass("noDisplay"); //display
},function(){
$("#section1 .NavUL1").addClass("noDisplay"); //no display
});
$("#section1 .NavUL1 .subMenu1").hover(function(){
$(".NavUL2").removeClass("noDisplay"); //display
},function(){
$(".NavUL2").addClass("noDisplay"); //no display
});
//#section2
$("#section2").hover(function(){
$("#section2 .NavUL1").removeClass("noDisplay"); //display
},function(){
$("#section2 .NavUL1").addClass("noDisplay"); //no display
});
$("#section2 .subMenu1").hover(function(){
$(".subMenu1 .NavUL2").removeClass("noDisplay"); //display
},function(){
$(".subMenu1 .NavUL2").addClass("noDisplay"); //no display
});
$("#section2 .subMenu2").hover(function(){
$(".subMenu2 .NavUL2").removeClass("noDisplay"); //display
},function(){
$(".subMenu2 .NavUL2").addClass("noDisplay"); //no display
});
$("#section2 .subMenu3").hover(function(){
$(".subMenu3 .NavUL2").removeClass("noDisplay"); //display
},function(){
$(".subMenu3 .NavUL2").addClass("noDisplay"); //no display
});
$("#section2 .subMenu4").hover(function(){
$(".subMenu4 .NavUL2").removeClass("noDisplay"); //display
},function(){
$(".subMenu4 .NavUL2").addClass("noDisplay"); //no display
});
你對class和id的使用似乎是關閉的。編號是唯一的,而類是一般 –
我知道這一點。這是有目的的,因爲這些部分是獨特的,因爲subMenu1(-x)和NavUL1(-x)的類不是唯一的。 – snahl
我明白髮生了什麼,以這種方式使用ID /類是完全正確的。 –