未捕获的TypeError:$(...)。ready不是函数

时间:2015-10-10 16:29:22

标签: jquery

嗨我知道以前曾经问过这个问题,但这里的答案似乎对我没什么帮助。

我有这个JS块:

$(document).ready(function() {
    $('.play-icon-hover').hover(function() {
         $('.cms-model-banner-overlay').addClass('.cms-model-banner-overlay-active');
        }, function() {
         $('.cms-model-banner-overlay').removeClass('.cms-model-banner-overlay-active');
    });
});

我似乎得到了这个错误,但我不明白为什么?

Uncaught TypeError: $(...).ready is not a function

由于

1 个答案:

答案 0 :(得分:28)

您正在使用Prototype.js以及jQuery.js。如果您想使用jQuery,最好将代码封装在IIFE中,如下所示:

(function ($) {
  // jQuery code using $
})(jQuery);

因此,您的问题的解决方案是将$更改为jQuery:

jQuery(document).ready(function() {
  jQuery('.play-icon-hover').hover(function() {
    jQuery('.cms-model-banner-overlay').addClass('.cms-model-banner-overlay-active');
  }, function() {
    jQuery('.cms-model-banner-overlay').removeClass('.cms-model-banner-overlay-active');
  });
});

或者,使用IIFE:

(function ($) {
  $(document).ready(function() {
    $('.play-icon-hover').hover(function() {
      $('.cms-model-banner-overlay').addClass('.cms-model-banner-overlay-active');
    }, function() {
      $('.cms-model-banner-overlay').removeClass('.cms-model-banner-overlay-active');
    });
  });
})(jQuery);