Как использовать функцию скрытия внутри оператора if - PullRequest
1 голос
/ 05 июля 2019

Когда я щелкаю элемент .dot, он должен запросить базу данных и показать результат, а во втором щелчке он должен скрыть результат.Однако в первом клике он просто ничего не показывает.

Когда я оставляю второй if пустым, он успешно запрашивает базу данных и показывает результат.Но когда я добавляю этот код $(".conte").hide(); ко второму if, он ничего не показывает в клике.

вот код:

$(document).ready(function() {
  var do1 = 0;
  var do2 = 0;
  var do3 = 0;
  var do4 = 0;

  $('.dot1').click(function() {

    if (do1 == 0) {
      do2 = 0; // for other function
      do3 = 0; // for other function
      do4 = 0; // for other function
      do1 = 1;

      $.ajax({
        type: "POST",
        url: "query1.php",
        success: function(data) {
          $(".conte").html(data);
        }
      });
    }
    if (do1 == 1) {
      $(".conte").hide();
      do1 = 0;
      //hide me
    }
    // $(this).toggleClass('clicked');
  });
});

1 Ответ

1 голос
/ 05 июля 2019

Перед отправкой запроса AJAX в первом if, вы делаете do1 = 1;.Поэтому, когда вы затем тестируете if (do1 == 1), это успешно, поэтому вы прячете .conte.

Измените второй if на else if, чтобы не запускать оба блока одним щелчком.Или используйте else, если это только два возможных значения.

Если вы используете их для двоичных состояний, лучше использовать true и false, а не 0 и 1.Тогда вы можете написать:

do1 = true;

if (do1) {
    do1 = false;
    ...
} else {
    do1 = true;
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...