将$(this)传递给jQuery fadeOut回调

时间:2009-06-09 19:16:12

标签: javascript jquery function callback effects

我知道我需要使用回调,以便在html()之后才会发生fadeOut(),但在fadeOut()回调中我无法访问$(this)来自.hover

我尝试使用var point传递选区,但它无效。

if(!$.browser.msie) {
    points = $("div.point");
} else {
    points = $("div.flash");
}

问题区域:

$(points).hover(
        function () {
            var point = $(this);

            $('#features_key').fadeOut('normal', function(point) {
                $('#features_key').html(point.next('.info').clone()).fadeIn('normal');
            });
        }, 
        function () {
        }
    );

HTML:

<div class="feature" id="feature0">
    <div class="point"></div>
    <div class="info"><p>Roof System</p></div>
</div>

2 个答案:

答案 0 :(得分:8)

请勿使用point作为fadeOut回调的参数。它将隐藏您之前“捕获”的点变量:

$(points).hover(
    function () {
            var point = $(this);

            $('#features_key').fadeOut('normal', function() {
                    $('#features_key').html(point.next('.info').clone()).fadeIn('normal');
            });
    }, 
    function () {
    }
);

答案 1 :(得分:0)

通过将point作为参数放在回调函数中,您将在该函数内重置它的值。