当我单击.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');
});
});
答案 0 :(得分:1)
在第一个if
中发送AJAX请求之前,请执行do1 = 1;
。因此,当您随后测试if (do1 == 1)
时,此操作成功,因此您隐藏了.conte
。
将第二个if
更改为else if
,这样就不会在一次单击中同时运行两个块。或者,如果只有两个可能的值,请使用else
。
如果将这些用于二进制状态,最好使用true
和false
,而不是0
和1
。然后您可以编写:
do1 = true;
if (do1) {
do1 = false;
...
} else {
do1 = true;
...
}