2014-04-15 58 views
5

jQuery燒烤noob問題:我已經下載了jQuery燒烤1.2.1,我試圖用它與jQuery 2.1.0。燒烤的意義在於它做我想做的事情,但我注意到了控制檯中的錯誤消息。我已經追蹤到似乎是兼容性問題。下面是一個示例HTML頁面產生錯誤:jQuery燒烤生成與jQuery 2錯誤

<!DOCTYPE HTML> 
<html> 
    <head> 
     <title>example</title> 
    </head> 
    <body> 
     example 
    </body> 
    <script src="../js/lib/jquery-2.1.0.min.js"></script> 
    <script src="../js/lib/jquery.ba-bbq.min.js"></script> 
</html> 

在Firefox的控制檯錯誤是TypeError: f is undefined。在Chrome中,錯誤有所不同:Uncaught TypeError: Cannot read property 'msie' of undefined

我注意到jQuery BBQ很舊。是否有更新的jQuery BBQ?還是有一些更新的替代庫?

UPDATE

我使用jQuery燒烤,因爲谷歌搜索把我送到這個先前回答的問題:Parsing URL hash/fragment identifier with JavaScript。我試圖解決的真正問題與鏈接問題相同:響應URI中哈希部分的更改並解析該片段。

事實證明,我的目的(到目前爲止),我可以消除jQuery的燒烤,寫一對夫婦的代碼獲取哈希串線(和刪除井號):

$(window).bind('hashchange', function() { 
     var hashString = window.location.hash || ''; 
     hashString = hashString.replace("#",''); 
     myEventHandler(hashString); 
    }); 

所以這將現在工作。這非常簡單,並且減少了對模塊的依賴,所以雙贏。我想這就是爲什麼沒有迴應jQuery-BBQ問題,呃?

+0

[browser.msie錯誤的可能重複更新到jQuery 1.9.1之後](http://stackoverflow.com/questions/14892095/browser-msie-error-after-update-to-jquery-1-9-1) – Phil

+1

我很尊敬地不同意。如果這個問題已經被jQuery-BBQ維護者問過了,並且顯然沒有一個,這將是重複的。雖然手工修補第三方組件並不在桌面上,但不使用jQuery-BBQ而是使用'window.location.hash'更簡單。 –

回答

3

我很高興你的問題解決了(1年前!)。但對於任何其他人誰有這個問題:

正如你可能已經在this answer看到這個問題是由$ .browser 1.3版已棄用,並在1.9中刪除。

但你可以很簡單地解決這個問題。剛剛開放的jQuery燒烤源和搜索f.msie(使用像H = f.msie),取而代之的是:

(navigator.appName == 'Microsoft Internet Explorer') ? true : false 

(現在你必須有h = (navigator.appName == 'Microsoft Internet Explorer') ? true : false

0

爲我工作的語法是:

h = (navigator.appName == 'Microsoft Internet Explorer' ? true : false) 

,或者如果用作一個 「if」 開關的一部分...

(h = (navigator.appName == 'Microsoft Internet Explorer' ? true : false))