TL;DR - jQuery 插件在 Firefox 中有效,但在 Chrome 中无效。相同的页面,相同的文件,相同的一切。
所以我有这个树枝页面,它扩展了另一个页面。在父页面中,jquery 像这样通过资产调用
#FooBar/Resources/view/Default/base.html.twig
{% stylesheets output = 'bundles/foobar/*.js' %}
'@FooBarBundle/Resources/public/js/jquery/jquery-1.8.3.js'
{% endstylesheets %}
{% block custom_js %}{% endblock %}
然后在子模板中我有以下
#WooHooBundle/Resources/views/FrontPage/frontpage.html.twig
{% extends 'FooBarBundle:Default:base.html.twig %}
{% block custom_js %}
{% javascripts output='bundles/woohoo/js/*.js' */ (adding this made output look funny)
'@WooHoBundle/Resources/public/js/Global/guidedTour.js'
'@WooHoBundle/Resources/public/js/Global/jquery.joyride-2.1.js'
'@WooHoBundle/Resources/public/js/Global/jquery.cookie.js'
'@WooHoBundle/Resources/public/js/Global/jquery.number.min.js'
%}
<script src="{{ asset_url }}" type="text/javascript"></script>
{% endjavascripts %}
{% endblock %}
因此,当我尝试在 Firefox 中使用 jquery.number 时,它看起来像这样(在控制台中)
$.number(1337)
'1337'
在 chrome 中它看起来像这样
$.number(1337)
TypeError: Object function (e,t){return new b.fn.init(e,t,r)} has no method 'number'
我查看了 DOM,插件位于 DOM 中的 jquery 之后。当我查看资源时,插件出现在 jquery 之前。它似乎是按字母顺序排列的,assetic 将这些随机值分配到 assets:install / assets:dump 文件的开头。所以他们看起来像这样
10ec069_jquery.number.min_4.js
c2a2536_jquery-1.8.3_1.js
所以我不知道为什么这会在 firefox 而不是 chrome 中工作......我有其他 JS 在 jquery 插件之后被调用......我已经通过 jsLint 运行它们并且那里一切都很好。
感谢您提供的任何帮助/建议:)
德鲁
编辑:
所以我安装了用于控制台扩展的 Javascript 库,它在其他所有内容之后重新加载 jquery。禁用它,现在一切正常