我的网站一直存在这个问题,我在网站中输入的一些脚本不起作用,而其他脚本则起作用。该站点在一个设置上功能齐全,在另一个设置上失败,即使代码相同。在我的站点标题中,我有4个对不同脚本的调用。滑块、自定义动画、分页和一些工具。我发现滑块工作正常,但下一个东西坏了。我可以删除滑块,另一个部分将开始工作。这很奇怪。
我一直在读一些书,并决定尝试用“正确的方式”来读。我正在调用函数中的所有脚本。php文件使用注册脚本,然后排队。当我查看源代码并正确链接所有文件时,我可以在标题中看到它们。知道WordPress包含jquery,我删除了允许工作的jquery脚本,并将其添加到函数中
wp_enqueue_script(\'jquery\');
我可以在视图源代码中看到脚本,并且它已正确链接,但即使删除了所有其他脚本,也会接受滑块。滑块仍然不工作。这是我的一个简单的小测试,它被认为是以正确的方式完成的,
wp_equeue_script(\'jquery\'); //this in in functions.php
//in the header of my site, I am calling the slider
<script type="text/javascript">
$(document).ready(function() {
$(\'#slider\').coinslider({
width: 948,
height: 367
});
});
根据我的阅读。。这应该会起作用,但不会。只有当我包含jquery脚本时,它才会开始工作,而我不想让它半途而废。我做错了什么?
最合适的回答,由SO网友:Eugene Manuilov 整理而成
答案显而易见。jQuery已加载到noConflict 模式这意味着全球$
jQuery的快捷方式不可用。必须使用闭包,如下所示:
(function($) {
$(document).ready(function() {
$(\'#slider\').coinslider({
width: 948,
height: 367
});
});
})(jQuery);
此外,我建议您为创建钩子处理程序
wp_enqueue_scripts
行动你需要排队
jquery
在这个钩子里。在这种情况下,您将只为前端将jquery排队。如下所示:
add_action( \'wp_enqueue_scripts\', \'wpse8170_enqueue_scripts\' );
function wpse8170_enqueue_scripts() {
wp_enqueue_script(\'jquery\');
}