2011-03-31 21 views
3

下面的代碼,當我點擊一個標籤,我做了一個帖子,並顯示在選項卡中的結果。在某些情況下,我想強制選中的選項卡,但不僅選擇選項卡,而且選擇選項卡+執行單擊時執行的代碼。jQuery模擬點擊代碼執行的標籤

以我爲例,我喜歡選擇第二選項卡(jLikeToSet = 1),並執行該代碼:

$.post('/Home/e2', function (data) { 
     $('#tabs-2').html(data); 
}); 

的jQuery:

var $tabs = $("#tabs").tabs(); 
    var jLikeToSet = 1 
    $("#tabs").bind('tabsselect', function (event, ui) { 
     switch (ui.index) { 
      case 0: 
       $.post('/Home/e1', function (data) { 
        $('#tabs-1').html(data); 
       }); 
       break; 
      case 1: 
       $.post('/Home/e2', function (data) { 
        $('#tabs-2').html(data); 
       }); 
       break; 
      case 2: 
       $.post('/Home/e3', function (data) { 
        $('#tabs-3').html(data); 
       }); 
       break; 
     } 
    }); 

HTML:

<div id="tabs"> 
    <ul> 
     <li><a href="#tabs-1">Screen 1</a></li> 
     <li><a href="#tabs-2">Screen 2</a></li> 
     <li><a href="#tabs-3">Screen 3</a></li> 
    </ul> 
    <div id="tabs-1"></div> 
    <div id="tabs-2"></div> 
    <div id="tabs-3"></div> 
</div> 

如何我可以這樣做嗎?

感謝,

UPDATE1: 我試圖用這個代碼: $('#tabs').tabsClick(1);但沒有工作,樣品來自這裏http://www.eduteka.org/ajax/tabs3/

回答

6

要以編程方式選擇標籤,調用這個函數與 ARG:

function selectTab(jLikeToSet){ 
    $("#tabs").tabs("select" , jLikeToSet); 
} 

當執行此功能時,就好像您已手動選擇,因此.bind('tabsselect'內部會執行編輯。

+0

這比我已經發布了一個乾淨多了。我並不知道選擇選項。 +1 – Chandu 2011-03-31 20:07:37

+0

與此代碼,我選擇標籤(jLikeToset中的索引),但是當我點擊標籤時沒有任何事情發生。在某些情況下,我想設置一個選項卡並執行coede ...你的解決方案是可以的,但是當我點擊選項卡時我也需要能夠執行代碼。 – 2011-03-31 20:24:59

+0

僅供參考,我用「e1」,「e2」...但可以是「aaaa」,「bbbb」,「azerty」 – 2011-03-31 20:31:34

0

嘗試在ready事件和標籤後添加此腳本創建:

$('#tabs-' + (jLikeToSet + 1) + ' a').click(); 
+0

它不僅在tabs-2中,而且在索引存儲在jLikeToSet中,在這種情況下爲1,但可以是0或2 – 2011-03-31 20:03:54

+0

@Kris:Manji發佈的解決方案是更好的解決方案。你需要做的一個小改變就是以這種方式使用它:$(「#tabs」)。tabs(「select」,jLikeToSet); – Chandu 2011-03-31 20:08:59

0

我自己會改變jQuery的以下內容:

$(document).ready(function() { 
    var $tabs = $("#tabs").tabs(); 
    $('#tabs li a').click(function(){ 
     $.post('/Home/e'+location.hash.replace('#tabs-',''), function (data) { 
      $(location.hash).html(data); 
     }); 
    }); 
}); 
0

根據您的用戶,它可能更好地給你的標籤名稱,所以用戶可以直接去他們,如https://www.example.com#documents

然後,你可以改變你的HTML反映,並使「點擊「更容易

<div id="tabs"> 
    <ul> 
     <li><a id="documents_click" href="#documents">Documents</a></li> 
     <li><a id="videos_click" href="#videos">Videos</a></li> 
     <li><a id="profile_click" href="#profile">Profile</a></li> 
    </ul> 
    <div id="documents"></div> 
    <div id="videos"></div> 
    <div id="profile"></div> 
</div> 

所以要選擇文檔選項卡,所有你需要的jQuery做的是:

$('#documents_click).click();