jQuery on load function not使用新版本Uncaught TypeError:$不是函数

时间:2017-05-10 16:58:12

标签: jquery wordpress

我以前在我的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。重新加载,它正常工作,没有控制台错误。

1 个答案:

答案 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({