Sar*_*tel 5 javascript wordpress jquery wordpress-theming
我在 WordPress 网站的主页上有一个基于 jquery 的自定义滑块。我正在我的主题的functions.php文件中使用以下代码加载jQuery(jquery.js)和滑块js(jquery.advanced-slider.js)。
function my_load_scripts() {
if (!is_admin()) {
wp_enqueue_script("jquery");
if (is_home()) {
wp_enqueue_script('theme-advanced-slider', get_template_directory_uri().'/js/jquery.advanced-slider.js', array('jquery'));
wp_enqueue_script('theme-innerfade', get_template_directory_uri().'/js/innerfade.js', array('jquery'));
}
}
}
Run Code Online (Sandbox Code Playgroud)
add_action('wp_enqueue_scripts', 'my_load_scripts');
现在我把下面的代码放在我的 header.php 文件之前 wp_head();
<script type="text/javascript">
var $j = jQuery.noConflict();
$j(document).ready(function () {
//Slider init JS
$j(".advanced-slider").advancedSlider({
width: 614,
height: 297,
delay: 1000,
pauseRollOver: true
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
很明显,我的 jquery.js 和 jquery.advanced-slider.js 在上面的 JavaScript 代码之后加载,因此我的滑块不起作用。如果我把它放在<head>
滑块工作中的wp_head() 调用之后。
但是如果我把它放在 wp_head() 之后,那不是黑客吗?我希望我的代码干净。正如 211 主题清楚地表明的那样
/* Always have wp_head() just before the closing </head>
* tag of your theme, or you will break many plugins, which
* generally use this hook to add elements to <head> such
* as styles, scripts, and meta tags.
*/
Run Code Online (Sandbox Code Playgroud)
我在这里很困惑。我可能在这里遗漏了一些非常简单的线索。但是帮帮我吧伙计们。将 JavaScript 放在 wp_head() 之前并在 jquery.js 和 slider.js 加载之后加载它的最佳方法是什么?
将脚本块添加到 HTML 页面的底部,就在</body>
.
无论如何,在浏览器中解析完整的 DOM 之前,滑块初始化 JS 代码不会被执行,因此这没有任何缺点。
事实上,像 Steve Souders 这样的 Web 性能专家建议,应该将脚本块添加到 HTML 页面的末尾,因为脚本块会阻止渲染,这样页面加载速度会更快。
归档时间: |
|
查看次数: |
13417 次 |
最近记录: |