jquery显示加载图像,直到click函数触发/执行内部函数

时间:2013-07-26 11:31:42

标签: jquery ajax function click return

项目列表视图切换有点击功能:

    $("#gal").click(function() {
        $("#gal").addClass("active");
        $("#list").removeClass("active");
        $("#mos").removeClass("active");
        $(".item_page_item").hide(0, function() {
            $(".item_page_itemlist").hide();
            $.cookie("theView", "g", { expires: 7, path: "/" });
            $(this).removeClass("mos");
            $(this).addClass("gal").show();
            $(".row").each(function() {
                $(".gal",this).eq(2).addClass("third");
                $(".gal",this).eq(1).addClass("snd");
            });
        });
        return false;
    });

单击,您可以在列表视图,galery视图和网格视图之间切换。有时,如果您有足够的物品,则需要1-2秒才能切换视图。

在视图发生变化之前,有没有办法显示加载程序或其他任何内容?

1 个答案:

答案 0 :(得分:3)

你没有做任何异步,所以为什么你使用回调是超出我的,因为每个方法等待下一个方法完成,javascript是单线程的,所有,你可以这样做:

$("#gal").on('click', function (e) {
    e.preventDefault();
    $('#loader').show();

    $("#gal").addClass("active");
    $("#list, #mos").removeClass("active");
    $(".item_page_item, .item_page_itemlist").hide();
    $.cookie("theView", "g", { expires: 7, path: "/" });
    $(this).removeClass("mos").addClass("gal").show();
    $(".row").each(function () {
        $(".gal", this).eq(2).addClass("third").end().eq(1).addClass("snd");
    });

    $('#loader').hide();
});