Почему jQuery .done () не распознает внешнюю функцию - PullRequest
0 голосов
/ 23 октября 2018

У меня есть что-то вроде этого:

  //works fine
  $.ajax("info.txt")
    .done(function(data) {
      console.log("works");
    })

У меня также есть что-то вроде этого:

  //throws an error, stating CheckIt() inside the .done() is not a function
  $.ajax("info.txt")
    .done(function(data) {
      CheckIt(data);
    });

  function CheckIt(da) {
    console.log("it works");
  }

Почему я получаю сообщение об ошибке и как я могу обойти ошибку, позволяя мнеиспользовать другие функции.

1 Ответ

0 голосов
/ 23 октября 2018

Вероятно, ваш запрос ajax не выполняется.Если вы замените done на всегда, он будет вызываться всегда, даже если запрос не выполнен.

$.ajax("https://cat-fact.herokuapp.com/facts/random")
  .always(function(data) {
    CheckIt(data);
  });

function CheckIt(da) {
  alert("it works");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
...