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'); }
我觉得这应该很容易修复,但我就是无法让它工作。我正在 运行 使用 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'); }