jq代碼優化
你不說你想完成什麼東西。
很難優化的很好。
如果就對你這個字面意思 三重循環調用函數來說
function(i , j k);
直接把function();
函數的代碼替代function(i , j k);
能減少函數調用的次數。
減少時間復雜程度。
噢。
我感覺有用的就是上的的那些。
能不調用函數。
非常節約時間。
因為調用函數就訪問內存。
訪問內存是非常費時間的。
② Jquery 多個彈出框顯示事件中代碼優化問題
$("#zhutouch1_divtan, #zhutouch2_divtan").hover(function(){//滑鼠移入執行函數
var id = $(this).attr("id");//獲取當前移到的對象。。進行執行對應的命令
if(id == "zhutouch1_divtan"){
$("#touch").addClass("touch");
$("#touch").show();
$("#caijing").removeClass("tanab").addClass("tana");
}else{
$("#touch").addClass("touch1");
$("#tiyu").removeClass("tanb").addClass("tanbc");
$("#touch").show();
}
}, function(){//滑鼠移開執行函數
var id = $(this).attr("id");
if(id == "zhutouch1_divtan"){
$("#touch").removeClass("touch");
$("#touch").hide();
$("#caijing").addClass("tanab").removeClass("tana");
}else{
$("#touch").removeClass("touch1");
$("#tiyu").addClass("tanb").removeClass("tanbc");
$("#touch").hide();
}
}
大致是這樣,多選擇器執行統一函數,判斷獲取當前經過的是哪個對象執行對應的命令,估計還能寫的更簡潔,時間有限,想到的就是這樣的
);
③ 如何書寫高質量jQuery代碼
首先要學會優化代碼。在平時的開發中注意細節,因為只要你細節注意到了,你的代碼質量就會顯著提高。比如變數的聲明和使用,方法的聲明。多看一下插件的寫法,裡面會讓代碼更便於維護也擴展。看下面向對象的編程模式,如果你的javascript面向對象學的不錯,那你的jquery質量肯定也不會差到哪裡去。
④ jquery代碼優化重構
^^var $masterUL =$('#nav'),
$rels = $('#nav').find('[rel^="dropmenu"]');
$rels.each(function(i,el){
var index = $(el).attr('rel').replace('dropmenu','');
$("#dropmenu"+index).insertAfter(el);
});
再短點就是
$('#nav').find('[rel^="dropmenu"]').each(function(i,el){
$("#dropmenu"+$(el).attr('rel').replace('dropmenu','')).insertAfter(el);
});
⑤ jquery ,怎樣優化下面代碼,就是使代碼重復利用
^<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jQuery</title>
<script language="javascript" type="text/javascript" src="js/jquery-1.4.4.js" ></script>
<script type="text/javascript">
$(document).ready(function(){
$("[id^='type']").each(function(i){
$(this).click(function(){
$("#member"+ (i+1) +">li>span>input[type='checkbox']").attr("checked", $(this).attr("checked"));
if( $("#type"+(i+1)).attr("checked")==false){
$("#member"+(i+1)).hide();
}
else{
$("#member"+(i+1)).show();
}
})
});
});
</script>
</head>
<body>
<input type="checkbox" id="type1" />1<br>
<input type="checkbox" id="type2" />2<br>
<input type="checkbox" id="type3" />3<br>
<ul id="member1">
<li><span><input type="checkbox"/>1</span></li>
</ul>
<ul id="member2">
<li><span><input type="checkbox"/>2</span></li>
</ul>
<ul id="member3">
<li><span><input type="checkbox"/>3</span></li>
</ul>
</body>
</html>
⑥ 求幫忙優化HTML的jquery代碼,寫一個類似if
具體你沒貼出來的HTML代碼,不知道你的DIV與IMG的嵌套關系,所以下面的寫法是考慮了諸多因素在內的,如果你將DIV與IMG布局好點,代碼還可以更簡潔:
(function($, t) {
$(function(){
var t = t || '#B1,#B2';
$(t).each(function(){
var pic_id = '#P' + $(this).attr('id').substring(1);
$(pic_id).hide();
// 滑鼠事件
$(this).hover(function(){$(pic_id).show();}, function(){$(pic_id).hide();});
});
});
})(jQuery, '#B1,#B2,#B3,#B4,#B5,#B6,#B7,#B8,#B9');
⑦ jq代碼優化,如何優化大量的if elseif語句
varmytop=$(window).scrollTop();
$('#wrap>h3').each(function(i){
var$this=$(this);
var$next=$this.next('h3');
vartop=$this.offset().top;
varbottom=$next[0]?$next.offset().top:$('#wrap>h3:last').offset().top;
var$li=$("#fixelli").eq(i);
if(mytop>=top&&mytop<bottom){
$li.addClass("cur").siblings().removeClass("cur");
returntrue;
}
});
樓主的CSS有問題,這個改成這樣就好了
#wrapimg{
display:block;
border:none;
}
你float的話會影響流的布局,計算不到高度
順便說一下,用if是肯定不可取的,假如我有100個節點,難道要if 100次嗎?很明顯用遍歷才合適
⑧ JQUERY開發規范,如何避免全局變數的污染,比如向下面這段代碼如何優化
(function(){
在這個匿名包裡面隨便寫你的代碼都不會污染
})()
⑨ 怎麼簡化jquery代碼
你這個代碼,不僅寫的很累贅,而且性能還很差,優化你這個代碼有很多總,
1、對於會使回用多次的jquery對象用答一個變數存起來,比如你的$('button')使用了很多次,你可以定義一個變數var button = $('button');這樣後面的代碼都使用button
2、對於選擇器最優的肯定還是通過ID去選擇,所以你要使用的元素勁量去寫一個ID或Class只能的,比如你的$('div').eq(1)你要使用某一個,就直接給這個div將id或class,$('#my_div'),就不需要用索引
3、對於你寫的jquery選擇器,會去搜索整個文檔,比如你的$('div')會把整個文檔的div都包含進來,其實有時我們只需要某一區域的html,所以我們可以給某個區域的符級加加一個id或其它的表示,然後去查找裡面要用的控制項,比如$('#my_div').find('div')
⑩ 求高手優化jquery代碼
看你的代碼,估計是想做一個二級菜單的效果,在滑動到子菜單的時候仍然保持當前的主導航鏈接高亮,其實比較簡單。
$('.navulli').each(function(){
var_this=$(this);
varbaseLink=_this.find('a:first');
varsubMenu=_this.find('ul:first');
_this.hover(function(){
baseLink.addClass('nav_list_on');
subMenu.show();
},function(){
baseLink.removeClass('nav_list_on');
subMenu.hide();
});
})
遍歷當前的列表,直接添加hover連續事件就可以,當前欄目下有子菜單才會顯示子菜單,沒有就不顯示即可。