我以前在我的WordPress / WooCommerce设置中遇到了jQuery冲突。
为了解决这个问题,我又回到了WordPress中包含的jQuery
// Remove themes old version of jQuery and load a compatible version
add_action('wp_enqueue_scripts', 'update_jquery_for_cherry_framework', 11);
function update_jquery_for_cherry_framework() {
wp_deregister_script('jquery');
wp_register_script('jquery', '/wp-includes/js/jquery/jquery.js', false, false, true);
wp_enqueue_script('jquery');
}
当我进行此更改时,我的所有jQuery函数都开始失败,并且chrome Console开始输出错误:
Uncaught TypeError: $ is not a function
要解决此问题,我必须封装我的函数
jQuery(document).ready(function($){
// script
});
这解决了jQuery冲突,它们都重新开始工作了。
我的问题是我只能弄清楚如何解决(document).ready
个实例的问题。
我的一个jQuery函数必须在文档就绪函数之后触发,或者换句话说是window.onload
函数。
以下是相关脚本:
<script>
$(window).load(function() {
$(".parallax-slider").css({
'margin-left': $(".parallax-bg").css("marginLeft")
});
$(".parallax-slider").fadeIn(2500 , function(){
$(this).css("display","normal");
});
$(window).resize(function(){
$(".parallax-slider").css({
'margin-left': $(".parallax-bg").css("marginLeft")
});
});
});
</script>
现在,正如我之前所说,我在行Uncaught TypeError: $ is not a function
$(window).load(function() {
错误
我尝试了多项内容,例如将其更改为jQuery(window).load(function($){
jQuery(window).load(function($){
$(window).resize(function(){
$(".parallax-slider").css({
'margin-left': $(".parallax-bg").css("marginLeft")
});
});
});
但我仍然收到Uncaught TypeError: $ is not a function
$(window).resize(function(){
我还尝试过在代码末尾添加})(jQuery);
等其他内容。
我已经说过jQuery(document).ready(function($){
的所有内容都运行良好...当我需要使用$(window).load(function() {
时,如何让我的脚本在实例中工作? jQuery(window).load(function($){
或者它可能是什么?
编辑:
解决方案感谢@abourne
<script>
jQuery(window).load(function(){
jQuery(".parallax-slider").css({
'margin-left': jQuery(".parallax-bg").css("marginLeft")
});
jQuery(".parallax-slider").fadeIn(2500 , function(){
jQuery(this).css("display","normal");
});
jQuery(window).resize(function(){
jQuery(".parallax-slider").css({
'margin-left': jQuery(".parallax-bg").css("marginLeft")
});
});
});
</script>
基本上我必须将$
的实例更改为jQuery
。重新加载,它正常工作,没有控制台错误。
答案 0 :(得分:1)
jQuery(window).load(){
$(window).resize(function(){
$(".parallax-slider").css({
'margin-left': $(".parallax-bg").css("marginLeft")
});
});
});
实际上非常接近你需要的东西。尝试替换
$(window).resize(function(){
与
jQuery(window).resize(function(){
与
相同 $(".parallax-slider").css({
到
jQuery(".parallax-slider").css({