遅延オブジェクトは一度しか解決できないため、解決策として使用できます。
var runCodeDeferred = $.Deferred(function(deferred){
$(window).load(deferred.resolve);
setTimeout(deferred.resolve,7000)
});
runCodeDeferred.done(function(){
//Some Code
});
$.Callbacks
オブジェクトでも同じことができます。
var callbacks = $.Callbacks("once");
$(window).load(callbacks.fire);
setTimeout(callbacks.fire,7000);
callbacks.add(function(){
//Some Code
});
しかし、それは行うことと同じです:
var timer;
function someCode() {
//Some Code
}
$(window).on("load.someCode",function(){
clearTimeout(timer);
someCode();
});
setTimeout(function(){
$(window).off("load.someCode");
someCode();
},7000);