4

我正在学习 jQuery 的基础知识,当我发现 mouseleave 和 mouseenter 动作时,我开始想知道应该在哪里放置 mouseleave 动作?哪一个更正确并且永远有效?

$(document).ready(function(){
    $('div').mouseenter(function(){
        $(this).fadeTo('fast','1');
        $(this).mouseleave(function(){
            $(this).fadeTo('fast','0.25');
        });
    });
});

或者也许 this1 更好?

$(document).ready(function(){
    $('div').mouseenter(function(){
        $(this).fadeTo('fast','1');
        });
        $('div').mouseleave(function(){
            $(this).fadeTo('fast','0.25');
        });
});
4

1 回答 1

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'); }
);
于 2013-03-23T03:26:24.403 回答