我只需要一個回調和多個回調。用一個簡單的「類」MultiCallback來計算它似乎要解決的調用。 但jQuery的fadeIn函數只調用一次mCallback。jQuery多個回調到一個回調計數調用
它必須調用mCallback 3次。這通過在頂部範圍內直接使用回調函數來實現。
測試我的MultiCallback類也在我自己的功能沒有任何問題。我知道 還有其他方式,如Hide multiple elements with jQuery and get one callback ... 只是想知道我的邏輯有什麼問題。
<div id="1" style="display: none; background-color: green;"></div>
<div id="2" style="display: none; background-color: red;"></div>
<div id="3" style="display: none; background-color: blue;"></div>
<script>
var allElements = "#1, #2, #3";
var multiCallback = new MultiCallback($(allElements).length, function()
{
console.log("NEVER ENTER CALLBACK");
});
$(allElements).fadeIn(400, multiCallback.mCallback());
function MultiCallback(limit, fn)
{
var finishedCalls = 0;
function mCallback()
{
// Just enter one time !
if (++finishedCalls == limit)
{
fn();
}
}
return {
mCallback : mCallback
}
}
</script>
你的目標是在時間相繼淡出的div嗎? – Cranio
請注意,您正在調用三次回調,但它們會在同一時間執行。這就是我問的原因。 – Cranio
@Cranio是的,我想同時淡化所有3個div。有沒有像在c#中的「鎖定」? –