2014-04-03 28 views
0

有時它很直觀,有時我不清楚將callback放置在函數中的哪個位置以創建適當的回調。你能告訴我它會在哪裏? - 並解釋?謝謝...哪裏可以在函數中放置回調

var callSlides = function(my_elem, name, callback) { 

    $(my_elem).one('inview', function (event, visible) { 

    if (visible) { 

     $(my_elem + ' .photo-list .photo03').html('<img src="images/people/' + name + '/02.jpg" alt="" />'); 
     $(my_elem + ' .photo-list .photo04').html('<img src="images/people/' + name + '/03.jpg" alt="" />'); // <-- here somewhere ? 

    } 
    }); // <-- here somewhere ? 

}; 

與預期的結果是這樣的?

callSlides('#marc-leviste', 'leviste', function() { 
    // do the next things 
}); 



這是有道理的,我...

function sheriff(speed, callback) { 
    $('.thing').method(speed, callback); 
} 



因此,使用頂部例如...我想我會把它放進一個.html('',callback);

會有道理嗎?

+3

把它放在哪裏?你的意思是在哪裏調用*它?這完全取決於代碼的意圖。就像任何其他代碼一樣,它應該放在任何需要的地方。 –

+0

所以,我想要做些什麼 - 但只有在callSlides已經開始做這件事情之後。我理解邏輯 - 但不是語法。 – sheriffderek

+0

'callback'是一個函數,就像調用其他函數一樣調用它。 –

回答

2

您希望將「回調」放置到您希望在事件完成後觸發事件的功能的末尾。

function mySpecialFunction(param1,param2,callback) { 
    // Do some stuff. 

    // Do some more stuff. 

    // Do even more stuff. 

    // Check if the callback param exists and execute it if so. 
    if(callback) { 
    callback(); 
    } 
} 

用法:在這裏,我們只是傳遞一個內聯函數作爲回調函數。

mySpecialFunction('foo', 'bar', function() { 
    alert('I was called back.'); 
}); 

或者說你有另一個你想運行的函數叫做AlterUi。您可以在代碼中的其他位置定義該函數,並像這樣將其作爲對mySpecialFunction的回調來引用。

mySpecialFunction('foo', 'bar', AlterUi); 

希望這有助於!

相關問題