2012-12-26 77 views
0

我很難清除一個概念;說我有下面的代碼片段:Javascript方法執行和觸發事件

$('a.classA').on('click', function(){ 
    // something do here 
}); 

$('a.classB').on('click', function(){ 
    // something do here 
    $('a.classA').trigger('click'); 
    // rest of the code 
}); 

我們瞭解Javascript依次執行。因此,當該方法對應於a.classB事件a.classB正在執行時,那麼程序觸發click事件a.classA將暫停當前方法的執行,並且當click事件a.classA將完成時,它將執行其餘代碼?或者該方法將在不同的線程中執行;儘管線程在Javascript中不可用。

+1

必須有[更好的測試方法](http://jsfiddle.net/MyzzK/)? –

+0

就像在IE中嘗試一些東西,並相信它是在規範中 – Alexander

回答

2

觸發一個「點擊」是同步操作,所以它的有效喜歡做一個函數調用。如果您希望在當前事件循環完成後執行操作,則可以使用延遲爲零毫秒的超時。

2

您可以使用setTimeout使asyncronous觸發:

$('a.classB').on('click', function(){ 
    // something do here 
    setTimeout(function(){ 
    $('a.classA').trigger('click'); 
    },1); 
    // rest of the code  
}); 
相關問題