2014-02-13 2 views
0

Я новичок в jQuery, и мне интересно, как лучше написать следующий код?Как написать следующий jQuery немного лучше? (fading)

$("p:first").css({opacity:0.5}) 
$("p:first").mouseover(function() { 
    $(this).fadeTo("fast", 1); 
}); 
$("p:first").mouseout(function() { 
    $(this).fadeTo("fast", 0.5); 
}); 
+1

Определить "лучше" – Johan

+0

нет ничего особенного, что можно сделать .. кроме кэширования селектора и может использовать 'парение() ' –

ответ

2

Вы можете использовать JQuery chaining, а также метод hover обертывания/mouseleave функции mouseenter аккуратным способом:

$("p:first").css({opacity:0.5}) 
    .hover(function() { 
     $(this).fadeTo("fast", 1); 
    }, function() { 
     $(this).fadeTo("fast", 0.5); 
    }); 

Если вам нужно mouseover , mouseout, а не enter/leave вы c использовать .on перегрузки:

$("p:first").css({opacity:0.5}) 
    .on({ 
     mouseover: function() { 
      $(this).fadeTo("fast", 1); 
     }, 
     mouseout: function() { 
      $(this).fadeTo("fast", 0.5); 
     } 
    }); 
+0

Спасибо, это мне кажется самым чистым вариантом :) –

+0

См. Отредактированный ответ, поскольку я ошибочно сказал, что наведение обертывает указатель мыши/out - это не так, он обертывает ввод/отпуск вместо – CodingIntrigue

2

Вы должны использовать цепочки

$("p:first").css({ 
    'opacity': 0.5 
}).on({ 
    mouseover: function() { 
    $(this).fadeTo("fast", 1); 
    }, 
    mouseout: (function() { 
    $(this).fadeTo("fast", 0.5); 
    } 
}); 
2
$("p:first").css({opacity:0.5}).on({ 
    mouseover:function() { 
     $(this).fadeTo("fast", 1); 
    }, 
    mouseout:(function() { 
     $(this).fadeTo("fast", 0.5); 
    } 
}); 
0

Вы можете использовать chaining вместе с .hover(), чтобы выполнить свою задачу.

Try,

$("p:first").css({'opacity':0.5}).selector.hover(function() { 
             $(this).fadeTo("fast", 1); 
            },function() { 
             $(this).fadeTo("fast", 0.5); 
            }); 
1

Как насчет:

$("p:first").css({opacity:0.5}) 
    .hover(function() { 
     $(this).fadeTo("fast", 1); 
    }, 
    function() { 
     $(this).fadeTo("fast", 0.5); 
    }); 
+0

RGraham избил меня к нему :-) – ScryptKeeper

Смежные вопросы