Browse Source

demos : hash history : enable back button on first click

pull/96/head
David DeSandro 14 years ago
parent
commit
80bd172a2f
  1. 29
      _posts/demos/2011-06-13-hash-history.html

29
_posts/demos/2011-06-13-hash-history.html

@ -69,6 +69,12 @@ $(function(){
var $container = $('#container'), var $container = $('#container'),
// object that will keep track of options // object that will keep track of options
defaultOptions = {
filter: '*',
sortBy: 'original-order',
sortAscending: true,
layoutMode: 'masonry'
},
isotopeOptions = {}; isotopeOptions = {};
@ -151,27 +157,26 @@ $(function(){
$(window).bind( 'hashchange', function( event ){ $(window).bind( 'hashchange', function( event ){
// get options object from hash // get options object from hash
var hashOptions = $.deparam.fragment( window.location.href, true ); var hashOptions = window.location.hash ? $.deparam.fragment( window.location.hash, true ) : {},
options = {};
// do not proceed if hash options aren't new
if ( hashOptions === isotopeOptions ) {
return;
}
$.extend( options, defaultOptions, hashOptions );
isotopeOptions = hashOptions; isotopeOptions = hashOptions;
// apply options from hash // apply options from hash
$container.isotope( isotopeOptions ); $container.isotope( options );
// if option link was not clicked // if option link was not clicked
// then we'll need to update selected links with // then we'll need to update selected links
if ( !isOptionLinkClicked ) { if ( !isOptionLinkClicked ) {
// iterate over options // iterate over options
for ( var key in isotopeOptions ) { var hrefObj, hrefValue, $selectedLink;
var hrefObj = {}; for ( var key in options ) {
hrefObj[ key ] = isotopeOptions[ key ]; hrefObj = {};
hrefObj[ key ] = options[ key ];
// convert object into parameter string // convert object into parameter string
// i.e. { filter: 'inner-transition' } -> 'filter=inner-transition' // i.e. { filter: 'inner-transition' } -> 'filter=inner-transition'
var hrefValue = $.param( hrefObj ), hrefValue = $.param( hrefObj ),
// get matching link // get matching link
$selectedLink = $optionSets.find('a[href="#' + hrefValue + '"]'); $selectedLink = $optionSets.find('a[href="#' + hrefValue + '"]');
changeSelectedLink( $selectedLink ); changeSelectedLink( $selectedLink );

Loading…
Cancel
Save