2013-07-30 32 views
0

我有以下代碼(on jsfiddle herejQuery代碼無法在Firefox中很好地工作/即

$(function(){ 

    var $container = $('#gallery'); 
    $container.isotope({ 
     filter: '*', 
     animationOptions: { 
      duration: 750, 
      easing: 'linear', 
      queue: false 
     } 
    }); 

    var $optionSets = $('ul.nav'), 
     $optionLinks = $optionSets.find('a'); 

    $optionLinks.click(function() { 
     var $this = $(this); 
     if ($this.hasClass('selected')) { 
      return false; 
     } 
     var $optionSet = $this.parents('ul.nav'); 
     $optionSet.find('.selected').removeClass('selected'); 
     $this.addClass('selected'); 
    }); 


    // HASH HISTORY WITH JQUERY BBQ 

    $('ul.nav a').click(function() { 
     // get href attr, remove leading # 
     var href = $(this).attr('href').replace(/^#/, ''), 
      // convert href into object 
      // i.e. 'filter=.inner-transition' -> { filter: '.inner-transition' } 
      option = $.deparam(href, true); 
     // set hash, triggers hashchange on window 
     $.bbq.pushState(option); 
     return false; 
    }); 

    //just a function to quickly add and remove .selected 
    function changeSelectedLink($elem) { 


     $elem.addClass('selected'); 
    } 

    $(window).bind('hashchange', function (event) { 
     //checks if there is a hash in the url and puts hashes in hashOptions 
          $(".selected").removeClass("selected"); 

     var hashOptions = window.location.hash ? $.deparam.fragment(window.location.hash, true) : {}, options = $.extend({}, hashOptions); 
     $('#gallery').isotope(options); 
     var hrefObj, hrefValue, $selectedLink; 
     //go over each hashOption and convert it to a variable 

     for (var key in options) { 
      hrefObj = {}; 
      hrefObj[key] = options[key]; 
      hrefValue = $.param(hrefObj); 
      $selectedLink = $('ul.nav').find('a[href="#' + hrefValue + '"]'); 
      changeSelectedLink($selectedLink); 
     } 
    }).trigger('hashchange'); //this continues the hashchange event 
}); 

此代碼的工作以及對鉻。但在Firefox 22和10即表現奇怪

當點擊顏色它一切正常。返回時,代碼的行爲方式應該是.selected被清除並且只添加到正確的節點。結果是在DOM中清除了.selected(如果我檢查了該元素),但在屏幕上它沒有。一旦我點擊屏幕上的任何地方,該課程就會被刪除。

此外,如果我用螢火蟲等進行調試,這不會發生!

我是否缺少代碼中的任何內容?

+0

我無法理解這部分沒有工作,上點擊相應的框中的顏色名稱出現(漂亮的過渡效果順便說一句),其餘的消失,這是期望的效果?在我的firefox 22.0中工作正常! – rps

+0

點擊顏色時,它工作正常。單擊後退按鈕時會出現問題。你應該回到以前的顏色。但是2種顏色標有'.selected'。 –

+0

如果我在該提琴中缺少_obvious_,但在瀏覽器中看不到任何_back button_ – rps

回答

相關問題