2017-05-03 61 views
0

首次爲個人項目測試UI選項卡。包括我到目前爲止。我需要加載2個獨立的腳本,當我點擊Tab 2和Tab 3時創建一個div。我之前在使用jQuery getScript時做了這些,當時我有一些鏈接的onclick函數。使用UI標籤可以做到這一點嗎?如果是這樣,怎麼樣?jQuery UI選項卡獲取選項卡上的腳本單擊和頁面刷新

<li><a onclick="loadTabtwo()">Tab 2</a></li> 
<li><a onclick="loadTabthree()">Tab 3</a></li> 

function loadTabtwo() { 
    $.getScript("//tab2.js"); 
} 
function loadTabthree() { 
    $.getScript("//tab3.js"); 
} 

這裏是我的功能激活標籤,並有刷新頁面的當前標籤刷新。

jQuery(function($) { 
    var index = 'qpsstats-active-tab'; 
    var dataStore = window.sessionStorage; 
    var oldIndex = 0; 
    try { 
     oldIndex = dataStore.getItem(index); 
    } catch(e) {} 
    $("#tabs").tabs({ 
     active: oldIndex, 
     activate: function(event, ui) { 
      var newIndex = ui.newTab.parent().children().index(ui.newTab); 
      try { 
       dataStore.setItem(index, newIndex); 
      } catch(e) {} 
     } 
    }); 
}); 

這裏是HTML

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

    <div id="tabs-1"> 
    <p>Tab 1 Content Here</p> 
    </div> 
    <div id="tabs-2"> 
    Load Script 2 Here - loadTabtwo() 
    </div> 
    <div id="tabs-3"> 
    Load Script 3 Here - loadTabthree() 
    </div> 
</div> 

回答

1

我相信這是你想要的,但我不認爲你已經擁有的是因爲每次最好的做法你的標籤就會對要去點擊再次獲得腳本

$("#tabs").tabs({ 
    active: oldIndex, 
    activate: function(event, ui) { 
     // ui.newTab.index() gets the index of which tab is active 
     //watch the index start from 0 
     if(ui.newTab.index()==1){ 
      $.getScript("//tab2.js"); 
     } 
     else if(ui.newTab.index()==1){ 
      $.getScript("//tab3.js"); 
     } 

     var newIndex = ui.newTab.parent().children().index(ui.newTab); 
     try { 
      dataStore.setItem(index, newIndex); 
     } catch(e) {} 
    } 
}); 
+0

Fadi,你是對的。如果用戶點擊每個標籤,我寧願沒有一次運行所有腳本。有沒有一種方法來獲取當前選項卡的getScript並禁用所有其他選項?所以基本上加載和卸載腳本點擊標籤? – MShack

+0

有一種方法,但我不相信如果你這樣做,它會是最好的做法,你能告訴你想要實現的?爲什麼腳本只需要加載到特定頁面?最新加載它們的問題,而不是每次添加腳本並刪除腳本 - 這是無緣無故的浪費時間 –

+0

在頁面刷新時,加載當前選項卡,但腳本不會反射,無論如何要合併.load和getScript,所以在頁面刷新當前標籤腳本加載? – MShack

相關問題