2010-12-15 205 views
2

我已經使用jquery選項卡用ajax加載數據,但是當用戶在選項卡中單擊時,我需要爲url添加一些參數。我事先不知道這些參數,因爲它們來自用戶填寫的表單。所以,我已經試過類似下面的代碼,但我不明白它的工作:Jquery選項卡:更改選項卡上的ajax數據點擊

<div id="tabs"> 
    <ul> 
     <li><a href="${tab1_url}">Tab 1</a></li> 
     <li><a href="${tab2_url}">Tab 2</a></li> 
     <li><a href="${tab3_url}">Tab 3</a></li> 
    </ul> 
</div> 

和序列化的形式在數組中,並加入數組包含satic數據數組。

var staticData = [{name:'id',value:'${myId}'}]; 
$("#tabs").tabs({ 
    var $tabs = $("#tabs").tabs({ 
     ajaxOptions: { data: staticData}, 
     select: function(event, ui) { 
      var dynamicData = $("#common_form").serializeArray(); 
      var dataToSend = staticData.concat(dynamicData); 
      $("#tabs").tabs("option", "ajaxOptions", { 'data': dataToSend }); 
      return true; 
     } 
    }); 
}); 

,但在創建標籤後,這個不更新阿賈克斯數據(我看到使用Firebug發送的請求,而且只包括初始PARAMS)。

如何在用戶點擊選項卡時更改ajax數據?

感謝

編輯:現在有了這個代碼工作

回答

3

我認爲你正在尋找的是 「URL」 的方法:

http://jqueryui.com/demos/tabs/#method-url

你的代碼將類似的東西:

$(function(){ 
    $("#tabs").tabs({ 
     select: function(event, ui) { 
      var data = $("#common_form").serialize();    
      if(ui.index == 1){ 
       var url = '${tab2_url}' + "&" + data; 
       $("#tabs").tabs("url", 1, url); //this is new ! 
      } 
      return true; 
     } 
    }); 
}); 
+0

現在工作正常。關鍵是使用$().tab()來設置值。雖然我用一種不同的方式來做到這一點,但我認爲你的解決方案是可行的。謝謝。 – Javi 2010-12-15 10:05:19

0
<div id="tabs"> 
    <ul> 
     <li><a href="" name="tab" id="tab1">Tab 1</a></li> 
     <li><a href="" name="tab" id="tab2">Tab 2</a></li> 
     <li><a href="" name="tab" id="tab3">Tab 3</a></li> 
    </ul> 
</div> 

jQuery代碼...

jQuery(document).ready(function($){ 
$("a[name=tab]").click(function(e){ 
if($(this).attr('id')=="tab1") 
{ 
//pass url1 
} 
if($(this).attr('id')=="tab2") 
{ 
//pass url2 
} 
if($(this).attr('id')=="tab3") 
{ 
//pass url3 
} 

}); 
}); 
1
jQuery(document).ready(function($){ 
$("a[name=tab]").click(function(e){ 
if($(this).attr('id')=="tab1") 
{ 
//pass url1 
} 
if($(this).attr('id')=="tab2") 
{ 
//pass url2 
} 
if($(this).attr('id')=="tab3") 
{ 
//pass url3 
} 

}); 
}); 

這爲我工作,但如果我需要爲前100級的標籤,我需要把所有100個標籤的URL。

+0

然後使用類似於關聯數組的對象來查找匹配,並避免多個if/then語句。 – Blazemonger 2012-11-26 22:32:34

相關問題