2011-06-27 217 views
0

我創建了一些有4頁的工具。 我命令在我使用jQuery「選項卡」(在每個頁面的標題)頁面之間導航。在jQuery中取消選項卡選擇

點擊某些標籤後,有沒有辦法取消點擊操作? 例如:如果頁面沒有保存,用戶將得到一個propper警告:「點擊是爲了繼續而不保存,或者點擊否以保留在未保存的頁面中」。

在此先感謝。 邁克

+0

我不清楚,你的意思是? – Starx

回答

1

如果你指的是jQuery UI的標籤控件,您可以在初始化標籤供應select事件,或使用tabselect事件類型綁定的事件處理程序:

$(".selector").tabs({ 
    select: function(event, ui) { ... } 
}); 

或:

$(".selector").bind("tabsselect", function(event, ui) { 
    ... 
}); 

有關jQuery UI Tab小部件的更多信息,請參見documentation

在事件處理程序,你應該能夠執行任何檢查您需要,並使用event.preventDefault();

+0

嗨, 使用事件選擇或單擊使用event.preventDefault();防止加載其他頁面(按要求留在當前頁面上),但突出顯示選定的選項卡(點擊第2頁後,我按要求留在第4頁,但選項卡2突出顯示,而不是第4頁)。 – Mike

+0

爲了解決這個問題,您可以在處理程序中觸發'select'事件,並將它傳遞給當前選項卡的索引。這將使它重新選擇當前選項卡:http://jqueryui.com/demos/tabs/#method-select –

+0

我添加了'$(「.tabs」).tabs(「option」,「selected」, 3);''click'事件中'event.preventDefault();'之前(在'select'事件中它不起作用)。當前選項卡(3)突出顯示,但除了選定的選項卡(兩個選項卡都突出顯示)... – Mike

0

我想你可以把一個確認的點擊動作第一個對話框改變停止選項卡。並且如果對話框的結果爲真,則只能繼續執行其餘的代碼。

+0

謝謝,但問題是取消選項卡選擇... – Mike

0

爲了取消或中止該標籤的ajax請求做這樣的事情

$('#tabs').tabs({ 
    ajaxOptions: { 
     timeout: 10000, 
     error: function() { 
      // If error occurs while trying to load a page via AJAX, abort the tabs 
      $('#tabs').tabs('abort'); 
     } 
    } 
}); 

欲瞭解更多信息,請here

相關問題