2010-12-21 39 views
2

enter code here我有以下的代碼來構建動態的選擇菜單:在AJAX系列事件完成之前,如何使用jQuery'隊列'來延遲操作?

$j("#id").load('create_menu.cgi', 'view=select_menu'); 

同樣的菜單頁面的多個部分,因此,而發送請求遍地create_menu.cgi使用,我想從複製第一個創建到需要菜單的頁面上的其他位置。

我已經在過去使用'隊列'來處理一些事情,我想我可以在這裏使用它。然而,在這種情況下,隊列似乎只會在菜單位於字段後調用URL(create_menu.cgi)後才運行。因此,例如以下不起作用:

$j("#id").load('create_menu.cgi', 'view=select_menu').queue(function(){ 

    doSomething(); 
    $j(this).dequeue; 

}); 

doSomething()不會等到菜單實際存在。有沒有一種方法可以使用'隊列'來實現這樣的功能,這樣菜單就會在創建第一個元素後立即被複制到頁面上的另一個元素上?

+0

您是否在頁面中多次使用相同的ID? – 2010-12-21 19:43:35

+0

不,每個菜單都有一個新的id,id與一個optgroup相關聯 – jmbsquared 2010-12-21 20:30:23

回答

3

您可以改爲使用load函數的第三個參數; complete回調。

.load(url, [ data ], [ complete(responseText, textStatus, XMLHttpRequest) ])

所以,你的情況,這樣的事情:

$j("#id").load('create_menu.cgi', 'view=select_menu', doSomething); 

Documentation