我对 jQuery 真的很陌生,但我已经阅读教程一周了,这是我的第一个代码。它可以工作,但是一段时间后它开始表现不佳。特别是当连续多次调用 mouseenter/mouseleave 操作时。每次延迟都会增加,直到我移动到另一个元素。
我在 jQuery 中搜索过糟糕的性能,但没有运气。我发现的最好的提示是:“使用 ID 而不是类选择器 (JQuery) ”,但我不确定为什么会出现问题,而且我发现很难将 '.photo' 替换为 id-tag,因为它应该会影响几个元素。
我还发现“通常,当您尽可能少地搜索或更改 DOM 时,JavaScript 会更快。 ”这可能是我的问题吗?如果是这样,我该怎么做?
所以请让我知道我的代码中是否有什么奇怪的地方,或者你有什么想法。谢谢!
代码
$(document).ready(function(){
$(".photo").mouseenter(function(){
$(this).fadeTo("fast", 0.9);
});
$(".photo").mouseleave(function(){
$(this).fadeTo("fast", 0.6);
});
$('.photo').click(function() {
$(this).animate({width: '900px'});
$(this).mouseleave(function(){
$(this).animate({width: '294px'});
});
});
$('.trigger').click(function() {
if( $("#5").is(":hidden") ) {
$("#6").hide('slow');
$('.trigger').fadeTo('slow', 0);
} else if ( $("#4").is(":hidden") ){
$("#5").hide('slow');
} else if ( $("#3").is(":hidden") ){
$("#4").hide('slow');
} else if ( $("#2").is(":hidden") ){
$("#3").hide('slow');
} else if ( $("#1").is(":hidden") ){
$("#2").hide('slow');
} else {
$("#1").hide('slow');
$(".triggerR").fadeTo('slow', 1);
}
});
$('.triggerR').click(function() {
if( $("#6").is(":hidden") ) {
$("#6").toggle('slow');
$(".trigger").fadeTo('slow', 1);
} else if( $("#5").is(":hidden") ) {
$("#5").toggle('slow');
} else if ( $("#4").is(":hidden") ){
$("#4").toggle('slow');
} else if ( $("#3").is(":hidden") ){
$("#3").show('slow');
} else if ( $("#2").is(":hidden") ){
$("#2").show('slow');
} else if ( $("#1").is(":hidden") ){
$("#1").show('slow');
$(".triggerR").fadeTo('slow', 0);
}
});
});