jQuery document ready怎么写都不行

jQuery document ready will not work no matter how I write it

我觉得这应该很容易修复,但我就是无法让它工作。我正在 运行 使用 google 地图创建 jQuery 商店定位器脚本。该脚本需要两个 javascript 文件,jquery 和 google 映射 api。最后,它调用 运行 定位器的实际函数。文件如下:

jlocator.min.js
jplist.min.js
jlocator.activate.js (this is where is put the document.ready script)
jquery
google api script

我的定位器在非 wordpress 测试站点中运行良好。但在 Wordpress 中,商店定位器脚本根本不会 运行。这是在我的functions.php页面

function my_map_scripts() {
    if ( is_page_template( 'template-project-map.php' ) ) {
        wp_enqueue_script(
            'jplist-custom-script',
            get_stylesheet_directory_uri() . '/js/jplist.min.js',
            array( 'jquery' )
        );
        wp_enqueue_script(
            'jlocator-custom-script',
            get_stylesheet_directory_uri() . '/js/jlocator.min.js',
            array( 'jquery' )
        );
        wp_enqueue_script(
            'jlocator-activate-script',
            get_stylesheet_directory_uri() . '/js/jlocator.activate.js',
            array( 'jquery' )
        );
        wp_enqueue_script(
                'google-maps',
                'https://maps.googleapis.com/maps/api/js'
            );
    }
}

add_action( 'wp_enqueue_scripts', 'my_map_scripts' );

我已将 .js 文件加入队列,它们加载正常。我在每个文件中放置警报只是为了仔细检查。我还曾使用 wp_script_is 来确保 jQuery 是 运行ning.

问题似乎出在我的文档就绪代码中。我正在使用以下内容:

jQuery(document).ready(function(){
    jQuery('#jlocator').jlocator();
});

这是什么都不做。我什至尝试发出警报,看看是否可行:

jQuery(document).ready(function(){
    jQuery('#jlocator').jlocator();
    alert("activated");
});

同样,没有。但是如果我删除这一行:

jQuery('#jlocator').jlocator();

因此代码为:

jQuery(document).ready(function(){
        alert("activated");
    });

警报正常触发。我也试过做类似下面代码的事情,看看它是否能工作,但它也没有工作。 (.panel 是我页面上的 div)。

jQuery(document).ready(function(){
    jQuery('.panel').hide();
});

不过,上面的代码在我的非 Wordpress 测试站点上运行良好。似乎每当我使用以下代码做某事时,它都会关闭其他所有内容。

jQuery('sometext')....

这里有什么我遗漏的简单的东西吗?

此外,我已经尝试将文档编写为:

$(document).ready(function(){
    $('#jlocator').jlocator();
    alert("activated");
});

jQuery(document).ready(function($){
    $('#jlocator').jlocator();
    alert("activated");
});

但仍然没有任何效果。如有任何建议,我们将不胜感激。

问题已解决。出于某种原因,jQuery 没有加载,即使我在调用我的 js 文件之前在我的函数中设置了依赖项。我不确定为什么会这样。但我将以下代码添加到我的 functions.php 页面,它开始工作:// Load jQuery if ( !is_admin() ) { wp_deregister_script('jquery'); wp_register_script('jquery', ("https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"), false); wp_enqueue_script('jquery'); }