$(document).ready(function(){
var TabContent = $('#SubNav > div.TabContent');
TabContent.hide();
$('#SubNav ul.TabNavigation li a').click(function(){
TabContent.hide().filter(this.hash).fadeIn(500);
$('#SubNav ul.TabNavigation li a').removeClass("active");
$(this).addClass("active");
return false;
}).filter(':first').click();
});
$(document).ready(function(){
var TabContent = $('#SubNav > div.TabContent');
TabContent.hide();
$('#SubNav ul.TabNavigation li a').click(function(){
TabContent.hide().filter(this.hash).fadeIn(500);
$('#SubNav ul.TabNavigation li a').removeClass("active");
$(this).addClass("active");
returnfalse;
}).filter(':first').click();
});
Maar is het dus mogelijk om ook de url aan te passen? Want dan kunnen mensen rechtstreeks naar een bepaalde pagina linken, en dan kan ik beter een back function enzo invoeren. Zodat als je op een gegeven moment 1 item bekijkt (op een losse pagina dmv get) dat je dan op back kan drukken..
Let op, het is niet alleen voor een back functie, maar dus ook zodat ik een betere url krijg! Voor direct links etc!
Ik wil dit per sé in jQuery maken omdat ik er zo mooie effecten overheen kan gooien, met slideIn() en dat soort functies, en het laadt snel.
// don't include return false! you want the URL
// to change to reflect which panel is showing --
// the next step will make it so that all of the anchors
// will be at the top of the page, so the fact that this
// returns true won't cause the page to scroll to the anchor.
Moet ik misschien de 'return false;' van regel 12 weghalen, of heb ik dan nog geen direct links? Of gaat ie dan m'n url veranderen en 'm laten refreshen? (kan 't nou niet testen, zit op laptop..)
$('#SubNav ul.TabNavigation li a').removeClass("active");
$(this).addClass("active");
returnfalse;
}).filter(':first').click();
});
Het werkt in principe goed, maar ik krijg nu zo'n url:
"http://jdwebdesign.nl/nieuw/index.php?p=portfolio#/&Sub=Projecten"
Na 'portfolio' staat er ineens een '#/'
Is de replace regel die ik in mijn functie heb staan (regel XX) wel goed?
Of moet ik eerst een replace plug-in downloaden? Want hij staat niet in de api van jquery.. en ik kan er verder niks over vinden.
Enig idee hoe ik dit verder moet uitwerken? Want ik moet eigenlijk wel van die '#/' af
Je krijgt die niet weg omdat je met anchors werkt en die beginnen nu eenmaal met een #.
Die # is ook clientside (net zoals js), je kan bv niet $_GET['#'] doen.
Ik gebruik wél de anchor-tag, maar die bedoel jij niet..
Maar zoals je ziet gebruik ik nou een gewone extra &Sub=Projecten, ik haal nou ook, als je klikt, de sub niet geopend moet worden uit de url (alleen bij een klik, moet nog zorgen dat het met een deep-link ook werkt)
Zat net nóg een keer die plugin door te lezen, sorry mijn fout... klopt wat je zegt. maar is die plugin dan niet dusdanig om te bouwen dat ik die '/#' weg kan halen? Want dat zou wel heel mooi zijn eigenlijk (A)
ik maak van (regel 14) ':first' --> '.Flash', dan opent hij netjes als eerste de flash sub.
Maar als ik van (regel 14) ':first' --> ''.'+$.urlParam('Sub')' maak, dan doet hij 't ineens niet goed, als ik dan een deep-link geef :/, enig idee hoe dat kan? Want het is exact het zelfde als de Flash, dus als je in de url 'Sub=Flash' hebt staan, zou die dus in theorie de flash moeten openen als eerste, maar dat doet ie niet
Je bedoelt die '.hide()' en '.fadeIn(500)'? Enige suggesties nog misschien? Die errors zal ik zo spoedig mogelijk proberen te verhelpen, maar ik ga nou slapen.