簡體   English   中英

jQuery BBQ使用jQuery 2生成錯誤

[英]jQuery BBQ generates error with jQuery 2

jQuery BBQ noob問題:我已經下載了jQuery BBQ 1.2.1,我正在嘗試將它與jQuery 2.1.0一起使用。 燒烤工作的意義在於它做了我想做的事情,但我注意到控制台中有一條錯誤信息。 我已將其跟蹤到似乎是兼容性問題。 這是一個產生錯誤的示例HTML頁面:

<!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 BBQ,因為谷歌搜索發送給我之前回答的問題: 使用JavaScript解析URL散列/片段標識符 我試圖解決的真正問題與鏈接問題相同:響應URI的哈希部分中的更改並解析該片段。

事實證明,就我的目的而言(到目前為止),我可以消除jQuery BBQ並編寫幾行代碼來獲取哈希字符串(並刪除哈希符號):

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

這樣就可以了。 它非常簡單,它減少了模塊依賴性,因此是雙贏的。 我想這就是為什么對jQuery-BBQ問題沒有回應,是嗎?

我很高興你的問題解決了(1年前!)。 但對於遇到此問題的其他人:

正如您在此答案中看到的那樣, 問題是由$ .browser引起的,該版本在1.3版中已棄用,在1.9中已刪除。

但你可以很簡單地解決這個問題。 只需打開jquery bbq源並搜索f.msie(像h = f.msie一樣使用)並將其替換為:

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

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

對我有用的語法是:

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

或者如果用作“if”開關的一部分......

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM