javascript - 延迟函数直到 $ 可用

标签 javascript jquery namespaces deferred-execution

雅虎建议load scripts at the bottom of an HTML pages出于性能原因。我使用遵守规则的 HTML5 Boilerplate。

这种方法的问题是 jQuery 也是在底部加载的。如果出于某种原因我需要编写包含 jQuery 代码的内联 javascript 我不能,因为 $在命名空间中尚不可用。

例如 galleria.js(jQuery 图片库引擎)会发生这种情况,它需要此标记:

<div id="gallery">
    <img src="/media/img1.png" />
    <img src="/media/img2.png" />
</div>

<script>
$('#gallery').css('height', '200px'); // this is required for galleria to work
Galleria.run('#gallery');
</script>

设置#gallery高度的代码不起作用,因为稍后加载 jQuery。 Firebug 控制台提供:

ReferenceError: $ is not defined

任何提示 <script> 执行的提示阻塞直到 $符号可以在命名空间中找到吗?

最佳答案

留下你的 jQuery <script>在底部标记,然后移动 Galleria <script>就在那之下。

<script type="text/javascript" src="jquery.js"></script>
<script>
$('#gallery').css('height', '200px'); // this is required for galleria to work
Galleria.run('#gallery');
</script>

关于javascript - 延迟函数直到 $ 可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11731963/

相关文章:

c# - 在系统命名空间内创建 .net 系统库扩展的陷阱

JavaScript 函数调用上下文

javascript - 如何始终在屏幕底部显示 float 操作按钮

javascript - 计算对象内部对象内部的值

javascript - 如何定义CSS :focus state in a jQuery selector?

oracle - oracle 12.2.0.1 中的命名空间 sys_Session_roles 在 sql 查询中工作,但不在 plsql block 内

javascript - 在 iframe 中加载 Highcharts

javascript - Joomla 2.5 组件。保存前非阻塞模式

Jquery bootstrap多选optgroup选择

c++ - 前向声明和全局命名空间声明