我正在学习jQuery的基础知识,当我发现mouseleave和mouseenter动作时,我开始想知道我应该在哪里放置mouseleave动作?哪一个更正确并且一直有效?
$(document).ready(function(){
$('div').mouseenter(function(){
$(this).fadeTo('fast','1');
$(this).mouseleave(function(){
$(this).fadeTo('fast','0.25');
});
});
});
或者这个1更好?
$(document).ready(function(){
$('div').mouseenter(function(){
$(this).fadeTo('fast','1');
});
$('div').mouseleave(function(){
$(this).fadeTo('fast','0.25');
});
});
答案 0 :(得分:3)
您的第二个选项更正确,它应始终设置单个事件。每次触发mouseleave
时,您的第一个选项都会添加新的mouseenter
事件,从而导致许多附加事件。所以使用:
$('div').mouseenter(function () {
$(this).fadeTo('fast', 'fast');
});
$('div').mouseleave(function () {
$(this).fadeTo('fast', '0.25');
});
.hover(handlerIn, handlerOut)
实际上有一些很好的简写。
$('div').hover(
function () { $(this).fadeTo('fast', 'fast'); },
function () { $(this).fadeTo('fast', '0.25'); }
);