Сократить код JQuery

0

Я создал простой JQuery-код анимации, но этот код слишком длинный, и мне интересно, можно ли сократить эти длинные строки:

Мой пример Jsfiddle: http://jsfiddle.net/ZDhzJ/2/

$("#UN").mouseover(function() {  
    $("#UNbis").stop().animate({opacity: 1}); 
});
$("#UN").mouseout(function() {  
    $("#UNbis").stop().animate({opacity: 0}); 
});

$("#DEUX").mouseover(function() {  
    $("#DEUXbis").stop().animate({opacity: 1}); 
});
$("#DEUX").mouseout(function() {  
    $("#DEUXbis").stop().animate({opacity: 0}); 
});

$("#TROIS").mouseover(function() {  
    $("#TROISbis").stop().animate({opacity: 1}); 
});
$("#TROIS").mouseout(function() {  
    $("#TROISbis").stop().animate({opacity: 0}); 
});

$("#QUATRE").mouseover(function() {  
    $("#QUATREbis").stop().animate({opacity: 1}); 
});
$("#QUATRE").mouseout(function() {  
    $("#QUATREbis").stop().animate({opacity: 0}); 
});
Теги:
long-integer
mouseover
jquery-animate

3 ответа

2
Лучший ответ

Присоединитесь к селектору и обработчику событий, добавьте bis к целевому идентификатору:

$('#UN, #DEUX, #TROIS, #QUATRE').on('mouseenter mouseleave', function(e) {
    $('#'+this.id+'bis').stop().animate({opacity: e.type=='mouseenter'?1:0});
});

FIDDLE

1

Вы можете сделать это:

  • Добавьте класс myDiv в divs, которые будут парить на
  • Найдите span внутри divs с помощью области функций.

JS:

$(".myDiv").mouseover(function() {  
    $(this).find('span').stop().animate({opacity: 1}); });
$(".myDiv").mouseout(function() {  
    $(this).find('span').stop().animate({opacity: 0}); });

Демо: скрипка

0
$('#UN, #DEUX, #TROIS, #QUATRE').hover(function(e) {// work as mouseover
    $('#'+this.id+'bis').stop().animate({opacity: 1});
},
function(e){//work as mouseout
    $('#'+this.id+'bis').stop().animate({opacity: 0});

});

можно попробовать с зависанием

см. ДЕМО

Ещё вопросы

Сообщество Overcoder
Наверх
Меню