У меня есть 4 плавающих divs, когда вы наводите курсор на тег A внутри divs, div появится в нижней части этих 4 divs, что соответствует div, где был нажат щелчок. Я оптимизировал JQuery, насколько мне известно, но я просто хотел посмотреть, есть ли там другие решения.Глядя на оптимизацию следующего кода JQuery
Мои Fiddle:http://jsfiddle.net/jonxblaze/PyHH5/
HTML
<div class="wrap">
<div class="promo red">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p><a href="#">More</a></p>
</div>
<div class="promo yellow">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p><a href="#">More</a></p>
</div>
<div class="promo blue">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p><a href="#">More</a></p>
</div>
<div class="promo black">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p><a href="#">More</a></p>
</div>
<div style="clear:both"></div>
<div class="red wide-full">RED CONTENTS</div>
<div class="yellow wide-full">YELLOW CONTENTS</div>
<div class="blue wide-full">BLUE CONTENTS</div>
<div class="black wide-full">BLACK CONTENTS</div>
JQuery
$('.yellow.wide-full, .blue.wide-full, .black.wide-full').hide();
$('.promo a').hover(function() {
var parentDiv = $(this).parents().filter('.promo'),
wideFull = $('.wide-full');
switch (true) {
case parentDiv.hasClass('red'):
$('.red.wide-full').show();
wideFull.not('.red').hide();
break;
case parentDiv.hasClass('yellow'):
$('.yellow.wide-full').show();
wideFull.not('.yellow').hide();
break;
case parentDiv.hasClass('blue'):
$('.blue.wide-full').show();
wideFull.not('.blue').hide();
break;
case parentDiv.hasClass('black'):
$('.black.wide-full').show();
wideFull.not('.black').hide();
break;
}
})
'$ (» широкий -full '). hide() 'должно быть достаточно, но на самом деле это не делает огромную разницу в производительности. p/s: Я препятствую пользователям использовать внешний вид как имена классов, то есть «синий», «желтый», потому что это не контекст. – Terry