2016-08-02 26 views
0

我有jQueryUI的標籤,和特定的標籤,我已經定義了一個點擊功能(Ajax調用正常工作):在特定jQueryUI的捕捉焦點標籤

$("a[href='#tabs-1ua']").click(function (event, ui) 
{ 

    //ajax call 

}); 

現在什麼,我試圖做的是以適應不只是點擊,而是通常在此選項卡上的任何類型的焦點,例如使用鍵盤箭頭鍵導航到它。我試過activate來代替click,但是我得到了一個錯誤。我如何捕獲所有類型的焦點在特定的jQueryUI選項卡上?

謝謝。

回答

0

我得到它的工作如下:

我使用類屬性,而不是一個ID初始化在我的應用程序選項卡,並在它指定了activate選項。在那裏,我得到了當前活動選項卡的ID,使用$(".tabui .ui-tabs-panel:visible").attr("id");,其中tabui是該類的名稱。代碼如下。

$('.tabui').tabs({ 

    activate: function (event, ui) 
    { 

     //do something 1 

     var currentTab = $(".tabui .ui-tabs-panel:visible").attr("id"); 

     console.log (currentTab); 

     if(currentTab === "#tabs-1ua") 
     { 
      //do something 2 
     } 


    } 
}); 

感謝所有回覆我的人都試圖幫助我。

0

嘗試

$("a[href='#tabs-1ua']").on('click hover', function() { 
// Do something for both 
}); 
+0

我剛剛試了一下,並沒有在行爲上與'click' – ITWorker

+0

@ITWorker我增加了新的way.Check是否適合你 –

+0

我試過,仍然看到了相同的行爲爲'click' – ITWorker

0

focus()默認由輸入元件(<input><textarea><select>),而不是<a>元件接受。嘗試添加一個標籤索引到錨首先:

$(document).ready(function() { 

    $("a[href='#tabs-1ua']").attr("tabindex", "-1").focus(function 
    (event, ui) { 
     // JS goes here 
    }); 

}); 
+0

這與點擊具有相同的行爲,但沒有捕獲到使用鍵盤導航到選項卡。 – ITWorker

1

你應該設置「tabsactivate」監聽器,而選項卡已被激活。請檢查下面的代碼。

//標籤是所有選項卡已被包裝的UL標識。請根據您的代碼替換它。

$('#tabs').tabs({ 
    activate: function(event ,ui){ 
     if(ui.newTab.attr('href')=='#tabs-1ua'){ 
      //make ajax call 
     } 
}); 
+0

這不適用於鍵盤導航焦點或鼠標單擊焦點。 – ITWorker

+0

@ITWorker你可以請嘗試更新的答案。 –

+0

@ITWorker你正在與哪個版本的jQuery UI? –

0

你需要使用focus事件的關鍵動作,並且可以使用它的鼠標點擊,以及。事件和相關事件在他們的行爲中出了名,特別是在框架和插件中如何實現它們。雖然我不能說爲什麼,a元素上的focus單擊鼠標時觸發,而當您導航到包含鍵的元素時,封閉的li上的focus會觸發。 (測試了Chrome瀏覽器。)所以:

$("#myTabs").tabs(); 
$('#myTabs li, #myTabs a').on('focus', function(e, ui){ 
    //do whatever 
}); 

Demo

+0

我該怎麼做只爲一個特定的選項卡? ''a [href ='#tabs-1ua']「' – ITWorker

+1

你可以給包含''''元素id並引用id。聽起來你可能需要仔細看看[CSS選擇器](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_started/Selectors),或者更清楚地理解jQuery使用CSS選擇器來確定要做什麼。我的示例中的選擇器引用元素中的任何'li'元素,其中id爲'myTabs',或者'myTabs'中的任何'a'元素,如果你不能從中找出它,請回發。 – BobRodes

+0

我現在看到了,謝謝你的幫助。 – ITWorker