我有简单的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();
});
答案 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');
});