如何在if语句中使用隐藏功能

时间:2019-07-05 20:04:06

标签: jquery ajax

当我单击.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 个答案:

答案 0 :(得分:1)

在第一个if中发送AJAX请求之前,请执行do1 = 1;。因此,当您随后测试if (do1 == 1)时,此操作成功,因此您隐藏了.conte

将第二个if更改为else if,这样就不会在一次单击中同时运行两个块。或者,如果只有两个可能的值,请使用else

如果将这些用于二进制状态,最好使用truefalse,而不是01。然后您可以编写:

do1 = true;

if (do1) {
    do1 = false;
    ...
} else {
    do1 = true;
    ...
}