jQuery BBQ使用jQuery 2生成错误



jQuery BBQ noob问题:我已经下载了jQuery BBQ-1.2.1,我正在尝试将其与jQuery 2.1.0一起使用。BBQ的工作原理是它做我想做的事情,但我注意到控制台中有一条错误消息。我已经找到了一个兼容性问题。下面是一个产生错误的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有更新版本吗?或者有更新的替换库吗?

更新

我之所以使用jQueryBBQ,是因为谷歌搜索向我发送了一个以前回答过的问题:用JavaScript解析URL哈希/片段标识符。我试图解决的真正问题与链接的问题相同:响应URI哈希部分的更改并解析该片段。

事实证明,出于我的目的(到目前为止),我可以消除jQueryBBQ,并写几行代码来获取哈希字符串(并删除哈希符号):

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

因此,这将在目前起作用。它非常简单,而且少了一个模块依赖,因此是双赢的。我想这就是为什么jQuery BBQ问题没有得到回应的原因,嗯?

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

正如您在这个答案中所看到的,这个问题是由$.brower引起的,它在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))

相关内容

  • 没有找到相关文章

最新更新