Ошибка JQuery: Uncaught TypeError: У объекта # <HTMLDocument> нет метода 'ready'

35

Мой сайт получает ошибку в этом заголовке в консоли javascript. Google, похоже, говорит, что это связано с тем, что jquery не загружен, но он определенно отображается в голове.

<script type="text/javascript">
  $(document).ready(function(){
    $.ajax({
      type: "GET",
      url: "https://www.mjfreeway.com/naturalremedies/mml-connect/45.xml",
      dataType: "xml",
      success: function(xml) {
        $(xml).find("products").each(function() {
          $(this).find("product").each(function() {
            $("#output").append($(this).find("title").text() + "<br />");
          });
        });
      }
    });
  });
</script>

сайт связан с медицинской марихуаной, поэтому nsfw для некоторых. Воспроизведение для грязной головы, это в режиме dev. http://www.kindreviews.com/1/mmc/

Спасибо, zeem

  • 0
    Вы, вероятно, должны опубликовать код ...
  • 0
    @ Патрик: Я согласен, проблема в том, что код. Это большая комбинация фигур. :-)
Показать ещё 4 комментария

3 ответа

55
Лучший ответ

Очевидно, вы используете jQuery и Mootools, и оба они используют $ как псевдоним для основной функции. Вероятно, функция $, которая генерирует эту ошибку, является функцией Mootools. Я предлагаю вам попробовать написать код jQuery с помощью jQuery вместо $, чтобы вы могли подтвердить, что моя точка правильная или нет.

Удачи!

  • 0
    Спасибо за вашу помощь. Удаление mootools теперь привело к этой ошибке: свойство '$' объекта [object DOMWindow] не является функцией
  • 0
    был исправлен с ответом tbthorpe, но все еще проблема, см. его комментарии.
Показать ещё 2 комментария
8

Yup - Я считаю, что именно проблема. jQuery и mooTools борются за использование $notation.

Вы на правильном пути с помощью

try{
   jQuery.noConflict();
 } catch(e){};

Но после того, как вы это используете, чтобы использовать функциональность jQuery, вы должны называть его jQuery (...) вместо $(...). Пример:

// Use jQuery via jQuery(...)
 jQuery(document).ready(function(){
   jQuery("div").hide();
 });

Здесь ссылка на документы jQuery относительно этого: http://docs.jquery.com/Using_jQuery_with_Other_Libraries

  • 0
    Спасибо! Ваша рекомендация сработала, но теперь я получаю «Невозможно вызвать метод« ajax »из undefined», потому что перед ним также стоит знак $?
  • 0
    Да, вам не нужен $, когда вы используете функциональность jQuery. На самом деле, он сломается, если вы это сделаете. Просто замените '$' на 'jQuery', и я считаю, что это должно сработать для вас.
Показать ещё 1 комментарий
0

У меня была такая же ошибка, когда я забыл добавить строку заголовка:

<script type="text/javascript" src="/javascript/jquery-ui-1.8.14.custom.min.js">   
</script>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню