jquery does't work

时间:2013-06-30 作者:Jamie

我的网站一直存在这个问题,我在网站中输入的一些脚本不起作用,而其他脚本则起作用。该站点在一个设置上功能齐全,在另一个设置上失败,即使代码相同。在我的站点标题中,我有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脚本时,它才会开始工作,而我不想让它半途而废。我做错了什么?

2 个回复
最合适的回答,由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\');
}

SO网友:rfrq

基本上WordPress在默认情况下已经加载了jQuery,您不必从函数中将jQuery排队。php。因为它以noConflict()模式运行,您必须使用jQuery 而不是$.

Edit:

就像其他用户jQuery提到的那样does not 默认情况下在前端加载,因此应将其排队。。。为什么我从来没有做过这件事;)。是否设置$deps 参数到array(\'jquery\') 使用需要jQuery的脚本时wp_register_script 自动加载jQuery而不单独将jQuery排队?

结束

相关推荐

表单安全性:随机数与jQuery

我正在尝试创建一种在WordPress网站上提交表单的方法。在过去,我使用WordPress nonces来保护表单提交,但我喜欢使用jQuery来清理表单提交并对其执行操作。我的问题是:如果我使用jQuery提交表单(即没有POST数据,也没有页面重新加载),这是否意味着我将不必使用nonce?这样做是否有任何安全风险/缺点?