views:

652

answers:

3

I have a style switcher on http://thetimes.gregrickaby.com. It works for the most part, but you have to hit F5 or Refresh to see the new style. How do I finish this jQuery to auto-refresh upon a successful execution?

    jQuery.fn.styleSwitcher = function(){
    $(this).click(function(){
     loadStyleSheet(this);
     return false;
    });
    function loadStyleSheet(obj) {
     $('body').append('<div id="overlay" />');
     $('body').css({height:'100%'});
     $('#overlay')
      .css({
       display: 'none',
       position: 'absolute',
       top:0,
       left: 0,
       width: '100%',
       height: '100%',
       zIndex: 1000,
       background: 'black url(http://thetimes.gregrickaby.com/wp-content/themes/thesis_16/custom/loading.gif) no-repeat center'
      })
      .fadeIn(500,function(){
       $.get( obj.href+'&js',function(data){
        $('#stylesheet').attr('href','css/' + data + '.css');
        cssDummy.check(function(){
         $('#overlay').fadeOut(500,function(){
          $(this).remove();
         }); 
        });
       });
      });
    }
    var cssDummy = {
     init: function(){
      $('<div id="dummy-element" style="display:none" />').appendTo('body');
     },
     check: function(callback) {
      if ($('#dummy-element').width()==2) callback();
      else setTimeout(function(){cssDummy.check(callback)}, 200);
     }
    }
    cssDummy.init();
}
$.ajax({
  success:function(){
       $('#overlay').load('http://thetimes.gregrickaby.com');
  }
 });
A: 

window.location = window.location.pathname will perform a refresh.

Jordan Ryan Moore
+1  A: 

You can use

success: function() {
    window.location.reload(true);
}
Mickel
Like this? $.ajax({ success:function(){ $location.reload(true); } });
Greg
(sorry I don't know how to put code into comments)
Greg
see my edits...
Mickel
Thank you sir! That worked, try it out: http://thetimes.gregrickaby.com
Greg
Nice! Glad it helped. :)
Mickel
+2  A: 
window.location.reload(true);

will do the trick.

Wookai
Where do I put that?
Greg
Mickel got it ;) !
Wookai