jQuery的烧烤生成错误与jQuery 2

Lee*_*ins 5 html javascript jquery jquery-bbq

jQuery的烧烤noob问题:我已经下载的jQuery 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>
Run Code Online (Sandbox Code Playgroud)

在Firefox中,控制台错误是TypeError: f is undefined.在Chrome中的错误是不同的:Uncaught TypeError: Cannot read property 'msie' of undefined.

我注意到jQuery的烧烤是很老.是否有更新的jQuery BBQ版本?或者是否有更新的替换库?

UPDATE

我使用jQuery烧烤,因为谷歌搜索把我送到这个先前回答一个问题:解析URL哈希/片段标识符用JavaScript.我试图解决真正的问题是一样的链接的问题:应对在URI的哈希部分变化,并分析该片段.

事实证明,我的目的(到目前为止),我可以消除jQuery的烧烤,写一对夫妇的代码获取哈希串线(和删除井号):

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

这样就可以了.这很简单,它少了一个模块的依赖性,所以双赢.我想这就是为什么对jQuery-BBQ问题没有回应,是吗?

sam*_*eri 3

我很高兴您的问题得到了解决(一年前!)。但对于其他遇到此问题的人来说:

正如您可能在这个答案中看到的,这个问题是由 $.browser 引起的,它在 1.3 版本中已被弃用,并在 1.9 版本中被删除。

但你可以很简单地解决这个问题。只需打开 jquery bbq 源并搜索 f.msie (像 h = f.msie 一样使用)并将其替换为:

( navigator.appName == 'Microsoft Internet Explorer') ? true : false
Run Code Online (Sandbox Code Playgroud)

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