$.when()
のコードが最初に終了するまでコールバック関数を強制的に待機させるには、$.when(some function).then(some function)
をjQueryで使用しようとしています。
ここは私の機能です。コンソールで
function activateFirstTab(callback) {
console.log('started activateFirstTab');
console.log('Total groups found: '+ $('.functionParameterGroup').length);
$.when(function() {
$('.functionParameterGroup').each(function() {
//Activate the first tab "which is the default"
var first = $(this).find('ul > li:first');
first.addClass('active');
var contentId = first.data('contentid');
$(contentId).addClass('in active');
console.log('finished when logic in activateFirstTab');
});
}).then(function() {
// Make sure the callback is a function
if (typeof callback === "function") {
// Call it, since we have confirmed it is callable
callback();
}
});
console.log('finished activateFirstTab');
}
私は、取得するには、次のメッセージ
started activateFirstTab
Total groups found: 2
finished activateFirstTab
が、私は、私はこの
started activateFirstTab
Total groups found: 2
finished when logic in activateFirstTab
finished when logic in activateFirstTab
finished activateFirstTab
する出力を期待してい
$.when()
内のブロックからのメッセージを取得することはありません
$.when()
のコードがなぜexeでないのですかcuted?
どうすれば実行できますか?私は何の間違いをしていますか?
に渡すことができますが、 '$繰延オブジェクトで呼び出され.when'ないでしょうか? https://api.jquery.com/jQuery.Deferred/ – noahnu
まず第一に、あなたのコードは同期的であり、このすべてを必要としません。 –
@YuryTarabankoあなたが '$ .when()。then()'を取り除くと、私のコードはコールバックを呼び出す前に終了するまで待つでしょうか? – Jaylen