2009-10-22 27 views
0

我想阻止標籤切換,直到Ajax調用完成。有什麼辦法可以做到這一點?現在(默認情況下),當我點擊另一個標籤時,它會切換到該標籤。我想阻止這個,直到Ajax調用成功/完成。僅供參考:我正在使用Jquery Tabs-3插件。請幫助我。Jquery UI TABS-3:防止切換(直到ajaxcomplete /成功):如何?

+0

在註釋中,在'\''字符(靠近'1'鍵)之間放置代碼 – SLaks 2009-10-22 21:31:08

回答

0

我假設你正在使用jQuery UI Tabs;如果你不是,請鏈接到你正在使用的東西。

如果是,則可以在開始加載時通過調用.tabs('disable', index)來禁用選項卡,並在加載完成後通過調用.tabs('enable', index)再次啓用該選項卡。你也可以傳遞一系列索引。

+0

感謝您的回覆,是的,我使用jQueryUITabs(http://docs.jquery.com/UI/Tabs) 。我有幾個嵌套的標籤,我想在 'tabsselect綁定事件' $( '#標籤> UL')實現這個綁定( 'tabsselect',函數(事件,UI){.....})。 你能指導我嗎? – TalkativeGeek 2009-10-22 19:15:54

+0

爲什麼你只是禁用標籤? – SLaks 2009-10-22 19:37:06

+0

我嘗試禁用並且不工作:( – TalkativeGeek 2009-10-22 19:55:20

0

爲了回答您的評論,

$('#tabs > ul').bind('tabsselect', function(event, ui) { 
    if(inAjaxRequest) 
     return false; 
    //Do whatever you're already doing here 
    return true; 
}); 
+0

用一些代碼替換'inAjaxRequest',以確定您是否要讓用戶切換選項卡。 – SLaks 2009-10-22 20:07:31

+0

再次感謝,那裏我卡住了,因爲我有兩個tabsselect and tabsshow binding。 ,我不能夠保持的ajaxstart and ajaxstop持續時間期間的控制,它只是簡單地通過,並調用tabsshow事件這又示出了相應的標籤。 – TalkativeGeek 2009-10-22 20:28:19

+0

作爲每jquery的UI選項卡的文檔,切換可以從tabsselect可防止僅對return false;結合所以,我只是wannna(不知)return true;如果ajax complete其他false,我無法弄清楚持有之間,我希望你能理解我的看法和邏輯控制的方式。能否請您提供一些線索? – TalkativeGeek 2009-10-22 20:28:59

0

爲了回答您的其他評論(By saying "hold the control", I mean to say that when 'tabsselect' even is triggered, next event which is 'tabsshow' shouldn't be triggered until ajax request gets complete/succeed),你不能直接這樣做。

但是,你可以取消tabsselect,而是存儲在用戶嘗試切換到一個可變的選項卡的索引。然後,當AJAX請求完成時,檢查變量是否保存一個製表索引(如果用戶沒有切換製表符),如果是,則切換到該製表位。確保在稍後再發出另一個AJAX請求時重置該變量。