我試圖使用JQuery切換功能,但無法正確使用。它不是上下滑動,而是非常快速,而不是以動畫方式。
我要實現我的代碼的滑動效果,像this已經(請參閱網站設計,重新設計服務滑塊):JQuery Help:toggle()無法正常工作
這裏是我的代碼:
HTML:
<div>
<div class="jquery_inner_mid">
<div class="main_heading">
<a href="#">
<img src="features.jpg" alt="" title="" border="0" /></a>
</div>
<div class="plus_sign">
<img id="imgFeaturesEx" src="images/plus.jpg" alt="" title="" border="0" />
<img id="imgFeaturesCol" src="images/minus.jpg" alt="" title="" border="0" /></div>
<div class="toggle_container">
<div id="divMain" >
</div>
</div>
</div>
<div class="jquery_inner_mid">
<div class="main_heading">
<img src="About.jpg" alt="" title="" /></div>
<div class="plus_sign">
<img id="imgTechnoEx" src="images/plus.jpg" alt="" title="" border="0" />
<img id="imgTechnoCol" src="images/minus.jpg" alt="" title="" border="0" /></div>
<div class="toggle_container">
<div id="divTechnossus" >
</div>
</div>
</div>
</div>
JQuery的:
$(function() {
document.getElementById('imgFeaturesCol').style.display = 'none';
document.getElementById('imgTechnoCol').style.display = 'none';
$('#imgFeaturesEx').click(function() {
$.getJSON("/Visitor/GetFeatureInfo", null, function(strInfo) {
document.getElementById('divMain').innerHTML = strInfo;
});
$("#divMain").toggle("slow");
document.getElementById('imgFeaturesEx').style.display = 'none';
document.getElementById('imgFeaturesCol').style.display = 'block';
});
$('#imgFeaturesCol').click(function() {
document.getElementById('divMain').innerHTML = "";
$("#divMain").toggle("slow");
document.getElementById('imgFeaturesCol').style.display = 'none';
document.getElementById('imgFeaturesEx').style.display = 'block';
});
$('#imgTechnoEx').click(function() {
$.getJSON("/Visitor/GetTechnossusInfo", null, function(strInfo) {
document.getElementById('divTechnossus').innerHTML = strInfo;
});
$("#divTechnossus").slideToggle("slow");
document.getElementById('imgTechnoEx').style.display = 'none';
document.getElementById('imgTechnoCol').style.display = 'block';
});
$('#imgTechnoCol').click(function() {
document.getElementById('divTechnossus').innerHTML = "";
$("#divTechnossus").slideToggle("slow");
document.getElementById('imgTechnoCol').style.display = 'none';
document.getElementById('imgTechnoEx').style.display = 'block';
});
});
編輯:我也想優化這個代碼(因爲代碼不是很乾淨+行數也可能是r得出)。我不知道JQuery的正確編碼標準。我在JQuery中很新,所以請告訴我正確的路徑,以便我可以優化這個愚蠢的代碼。
哇,我從來沒有見過用'jQuery'包含在我生命中的'getElementById'這麼多的調用。 – 2010-04-08 18:42:10
您應該真正將DOM元素緩存在變量中......這一定非常慢。 – 2010-04-08 18:43:24
@Coronatus:我真的不知道這件事(緩存var元件中的DOM元素)。你能否給我解釋一下,或者給我提供一個關於這個概念的好鏈接。這樣我就不會再犯這個錯誤了。謝謝。 – 2010-04-08 18:53:36