2011-04-30 66 views
1

當使用jQuery選項卡的默認選項卡時,我正在使用下面的函數更改頁面的某些CSS/HTML結構。問題在於它不是「動態的」,因此我的意思是它只激發了函數中的CSS - 顯示:沒有選擇兩個選擇器,沒有選擇#wrapper的寬度 - 單擊另一個選項卡後默認選項卡是點擊。當其他標籤被點擊時,CSS不會恢復到原始狀態。jQuery綁定事件不會始終在UI選項卡中進行CSS更改

的jsfiddle:http://jsfiddle.net/Yfs2V/33/

我怎樣才能讓這起火災的時候默認選項卡上加載頁面加載,並返回CSS被點擊其他選項卡時?有沒有更好的方法來使活動選項卡確定的標記更改?

$(document).ready(function() { 
    var $tabs= $("#tabs").tabs(); 

$('#tabs').bind('tabsshow', function(event, ui) { 
     switch (ui.index){ 
     case 0: 
      $('#col2, #footer').css('display', 'none'); 
      $('#wrapper').css('width', '700px'); 
    break; 
     } 
    }); 
+0

可以肯定的是,您在不同標籤中沒有重複的ID,對吧? – karim79 2011-04-30 02:20:04

+0

@ karim79:#col1和#footer不在標籤結構中,也不是笨蛋。 – markratledge 2011-04-30 14:11:11

回答

4

你需要告訴它恢復到原來的CSS。

$(document).ready(function() { 
    var $tabs = $("#tabs").tabs(); 

    $('#tabs').bind('tabsshow', function(event, ui) { 
     //your original css goes here such as $('#wrapper').css('width', '500px'); 
     If(ui.index == 0) { 
      $('#col2, #footer').css('display', 'none'); 
      $('#wrapper').css('width', '700px'); 
     } 
    }); 

在tabshow功能將首先恢復到原來的CSS然後檢查是否索引0被點擊時,CSS將改變。否則,原始CSS將不會被更改。

+0

或者他可以在switch語句中使用'default'的情況。 – karim79 2011-04-30 02:18:24

+0

我知道,這是更多的指出,而不是批評你的答案(我加上你)。 – karim79 2011-04-30 02:21:25

+0

感謝讚賞。 – Hussein 2011-04-30 02:23:07

相關問題