2011-11-27 118 views
2

我使用的是輕量級奇妙的jQuery插件minitabs來自:jQuery minitabs插件 - 在頁面加載時以編程方式選擇選項卡?

http://code.google.com/p/minitabs/

這是一個可愛的簡單的標籤系統。

但是,我很努力設置(在加載事件中)默認顯示哪個標籤。 在我的其中一個選項卡中,我有一個搜索表單 - 如果出現表單錯誤,我想重新加載頁面,並顯示正確的選項卡以顯示錯誤。

看代碼(不是一個jQuery/JavaScript的專家),它看起來像所有控制哪些選項卡是可見的是「當前」和其標籤顯示的選項卡上的類:無刪除...

任何擁有更多JS知識的人都可以通過「最佳」方式設置要在加載事件中顯示的選項卡嗎?

謝謝! 史蒂夫

jQuery.fn.minitabs = function(speed,effect) { 
    var id = "#" + this.attr('id'); 
    $(id + ">DIV:gt(0)").hide(); 
    $(id + ">UL>LI>A:first").addClass("current"); 
    $(id + ">UL>LI>A").click(
    function(){ 
     $(id + ">UL>LI>A").removeClass("current"); 
     $(this).addClass("current"); 
     $(this).blur(); 
     var re = /([_\-\w]+$)/i; 
     var target = $('#' + re.exec(this.href)[1]); 
     var old = $(id + ">DIV"); 
     switch (effect) { 
     case 'fade': 
      old.fadeOut(speed).fadeOut(speed); 
      target.fadeIn(speed); 
      break; 
     case 'slide': 
      old.slideUp(speed); 
      target.fadeOut(speed).fadeIn(speed); 
      break; 
     default : 
      old.hide(speed); 
      target.show(speed) 
     } 
     return false; 
    } 
); 
} 

回答

2

您可以初始化minitabs像這樣(example)後觸發所需的鏈接的點擊方法;

$('#container').minitabs(); 
$('#container>ul>li>a').eq(1).trigger('click'); 

或者如果您不介意更改原始minitab腳本,請參閱下文。

jQuery.fn.minitabs = function(index,speed,effect) { 
    var id = "#" + this.attr('id'); 
    var $divs = $(id + ">DIV"); 
    $divs.not($divs.eq(index)).hide(); 
    $(id + ">UL>LI>A").eq(index).addClass("current"); 
    $(id + ">UL>LI>A").click(
    function(){ 
     $(id + ">UL>LI>A").removeClass("current"); 
     $(this).addClass("current"); 
     $(this).blur(); 
     var re = /([_\-\w]+$)/i; 
     var target = $('#' + re.exec(this.href)[1]); 
     var old = $(id + ">DIV"); 
     switch (effect) { 
     case 'fade': 
      old.fadeOut(speed).fadeOut(speed); 
      target.fadeIn(speed); 
      break; 
     case 'slide': 
      old.slideUp(speed); 
      target.fadeOut(speed).fadeIn(speed); 
      break; 
     default : 
      old.hide(speed); 
      target.show(speed) 
     } 
     return false; 
    } 
); 
} 

這樣你就可以用預定義的index設置minitabs;

$('#container').minitabs(1); 

工作實例here

+0

太感謝你了 - 不能擺脫在這種情況下修改插件,但觸發方式完美地工作......真的很感激的指針。 – steve

相關問題