函数在fadeOut()之前触发;完了

时间:2010-05-12 20:58:05

标签: jquery size toggle fadeout visible

我是javascript / jQuery的新手,这真让我难过。

我想在这里实现的是

  • 切换a#sameDayTab jquery将查找.changeAlert和fadeOut它的容器div,当再次切换时div会淡入(这很有效。)
  • 每个切换也会调用一个函数,告诉我页面上有多少.changeAlert,并在一个范围内适当更新数字。问题是,当我第一次点击切换的锚点时,可见的数字应为0,因为.changeAlert已被fadeOut隐藏,而是返回页面加载时出现的类数量,无论切换点被激活多少次,该值都不会改变

非常感谢任何帮助。

function totalNumFares ()
    {
    var n = $('.changeAlert:visible').size();               
    $('.numFares').replaceWith('<span class=\"numFares\">'+ n +'</span>');

    }

totalNumFares();    

//Toggle On/off Same Day Connections

$('a#sameDayTab').toggle(function() {

    $('.changeAlert').parent().parent().parent().parent().parent().fadeOut();
    totalNumFares();        


    },function(){
    $('.changeAlert').parent().parent().parent().parent().parent().fadeIn();
    totalNumFares();


});

2 个答案:

答案 0 :(得分:0)

您需要将其设置为回调:

$(function(){
    // You can set duration to whatever you like
    $("#item").fadeOut(duration, function(){
        totalNumFares();
    });
});

http://api.jquery.com/fadeOut/

答案 1 :(得分:0)

您需要将其作为.fadeOut()回调运行,如下所示:

$('.changeAlert').parent().parent().parent().parent().parent().fadeOut(totalNumFares);

目前它在开始淡出后立即执行,但它是:visible,直到完成淡出,所以要计算你想要的数量,你需要在.fadeOut()完成后更新它,即回调运行时。

此外,如果您的父级上有一个可用作选择器的课程,则可以用.parent()次调用替换该.closest(selector)个链。