wordpress入队脚本问题("$未定义")

Lac*_*anF 11 wordpress jquery

希望这个对你们来说很容易解决:)

我正在构建一个wordpress主题,之前在html head标签中调用jquery脚本相当糟糕.这导致Opera中的一些加载延迟,我怀疑是因为我试图以两种方式同时加载jquery ...无论如何我现在正在functions.php文件中正确地执行它,但是我的进一步脚本依赖于jquery不是很好玩.

这里是我现在如何排队jquery和我的脚本(用于滑动面板)的片段:

add_action('init', 'my_init');
function my_init() {
    if (!is_admin()) {
        wp_deregister_script('jquery');
        wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js', false, '1.4.2', true);
        wp_enqueue_script('jquery');
        wp_enqueue_script('slide_script', get_template_directory_uri() . '/scripts/slide.js');
        echo "alert( 'Hello Admin!' );";
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的滑动面板脚本:

$(document).ready(function(){
    $(".btn-slide").click(function(){
        var $marginLefty = $("#slide-panel");
    $marginLefty.animate({
      marginLeft: parseInt($marginLefty.css('marginLeft'),10) == 0 ? 
        $marginLefty.outerWidth() :
        0
                        });
                                    });
                            });
Run Code Online (Sandbox Code Playgroud)

当我刚刚在head标签中调用jquery然后直接将脚本放在脚本标签中时,这一切都很有效,但现在firebug显示它抛出"$ is not defined"并将$更改为jquery会产生"jquery未定义"......有人可以帮忙吗?

Nic*_*ver 14

jQuery与资本一起使用Q而不是$使其发挥作用.Wordpress通常包括一个脚本,最后调用jQuery.noConflict(),保留$undefined.结果应该是这样的:

jQuery(function($) { //jQuery passed in as first param, so you can use $ inside
  $(".btn-slide").click(function(){
    var $marginLefty = $("#slide-panel");
    $marginLefty.animate({
      marginLeft: parseInt($marginLefty.css('marginLeft'),10) == 0 ? $marginLefty.outerWidth() : 0
    });
  });
});
Run Code Online (Sandbox Code Playgroud)


Dar*_*ren 14

通过在wp_enqueue - >中执行此操作,确保指示您的脚本依赖于jQuery wp_enqueue_script('slide_script', get_template_directory_uri() . '/scripts/slide.js', array('jquery'));

请注意,array('jquery')这表明您的脚本依赖于jQuery.

  • 如果你能接受这个答案,我会很感激 (3认同)