加载并准备一起使用jQuery

时间:2018-09-06 07:06:55

标签: jquery

我有简单的jquery函数隐藏和显示。我想从ready()load()事件中调用这些函数。

这是ready()的情况,出于某些原因,我也想使用窗口load()。 有什么办法可以让我同时使用这两个条件吗?

$(document).ready(function(){
                $("body").on("change","[data-type=Type]",function(){
                    var E = $(this);
                    if(E.val() == "F"){
                        $("[data-type=Rating]").removeAttr("required");
                        $("[data-type=Rating]").parents(".parsley-row").first().parent().hide();
                    }else{
                        $("[data-type=Rating]").parents(".parsley-row").first().parent().show();
                    }
                });
                $("[data-type=Type]").change();
            });

1 个答案:

答案 0 :(得分:2)

您可以使用Promise等待一个或多个异步事件完成。这是jQuery的示例,说明了如何即使不能保证这两个事件都会被触发,也可以等待两个事件。

var loadPromise = $.Deferred();
var readyPromise = $.Deferred();

$(document).ready(function(){

    console.log('Document ready is triggered');
    readyPromise.resolve();

});

$(window).on('load', function(){

    console.log('Window load is triggered');
    loadPromise.resolve();

});

$.when(loadPromise, readyPromise).done(function(){

    console.log('Both window load and document ready are done');

});