2009-10-08 13 views
5

Wie kann ich eine Abfragezeichenfolge (? id = avalue) mit jedem der folgenden Links übergeben, die den folgenden Registerkarten zugeordnet sind. Ich versuche, externen Inhalt innerhalb der Registerkarten zu öffnen (es funktioniert gut), aber ich habe einen Parameter mit den URLs nicht übergeben. Der Wert für den Parameter wäre für jede Verbindung gleich.jquery-ui-tabs. Übergeben einer Abfragezeichenfolge

Meine Funktion Code:

<script type="text/javascript"> 

     $(function() { 
      $("#tabs").tabs({spinner:'<b>Retrieving Data...</b>'}); 

     }); 

</script> 


<div id="tabs"> 
      <ul> 
      <li><a href="table.aspx"><span>Introduction</span></a></li> 
       <li><a href="RequestActionUpdate.aspx"><span>Update</span></a></li> 
       <li><a href="tabstesttarget.aspx"><span>Target</span></a></li> 
       <li><a href="table.aspx" ><span>View History</span></a></li> 
      </ul> 

     </div> 

Jede Hilfe Sie mir anbieten kann, wird sehr geschätzt werden.

Vielen Dank im Voraus

Antwort

1

Sie den Parameter auf jeden Link codieren kann:

<li><a href="RequestActionUpdate.aspx?id=avalue"><span>Update</span></a></li> 

Dies sollte gut funktionieren. Was genau funktioniert nicht für dich? Oder hast du etwas anderes vor?

+0

Ich vergaß zu erwähnen, dass der Parameter das gleiche für jeden Reiter sein würde, aber für jede Sitzung variieren. Ich beabsichtige, es wahrscheinlich aus einer versteckten Schachtel zu nehmen. –

1

Von der Suche, die ich getan habe, um den besten Weg, dies zu nähern, ohne etwas hässlich wie zu tun zu haben:

window.location = href + '?id=avalue' 

wäre die Anker hrefs auf der Seite zu laden, zu aktualisieren. Ergreifen Sie die ID/den Wert, den Sie benötigen, und hängen Sie sie einfach an.

$(document).ready(function(){ 
    value = "?id=foobar" 
    $("#tabs ul li a").attr('href', ($(this).attr('href') + value)); 
}); 

Nicht die eleganteste Lösung, aber es funktioniert.

1

Was passiert, wenn Sie auf allen Links einen Ereignisbeobachter hinzufügen?

$("#tabs ul li a").click(
    function(){ 
     $(this).attr('href', $(this).attr('href') + $('#someHiddenInput').val()); 
    } 
); 
9

Sie können die Option ajaxOptions verwenden. Das Widget "Tabs" gibt diese Optionen an jQuery.ajax() weiter.

Der folgende Code verwendet die Option der datajQuery.ajax() Funktion das Ergebnis der Funktion getId (a Unix-Zeitcode in diesem Beispiel) an den Server zu übergeben, wenn ein Register ausgewählt wird.
Die URL wird so etwas wie RequestActionUpdate.aspx?id=1255015611701 aussehen:

function getId() { 
    return (new Date()).getTime(); 
} 

$("#tabs").tabs({ 
    spinner:'<b>Retrieving Data...</b>', 
    ajaxOptions: { data: { id: getId } } 
}); 
+0

Brilliant. Das war die Lösung, die ich versucht hatte zu finden, aber ich konnte nicht sehen, wie ich es machen sollte. Definitiv eine elegante und effiziente Lösung. –

+0

Das hat Spaß gemacht! Vielen Dank dafür. –

+0

Ich bin froh, dass ich helfen konnte. Bitte denken Sie daran, eine Antwort als akzeptiert zu markieren;) – brianpeiris

Verwandte Themen