gpt4 book ai didi

javascript - 为什么我的事件没有第一次触发?

转载 作者:行者123 更新时间:2023-11-29 17:31:10 25 4
gpt4 key购买 nike

$(document).ready(function () {
$('.raj').click(function () {
if (!$(this).hasClass('already')) {

$('.infos').html('');

$('.infos').hide("fast");

$.ajax({
type: "POST",
dataType: "json",
url: "ggg/hhh/rrr.php",
success: function (msg) {
$('.infos').html(msg['ats']);
arr = msg['valid'];
}
});

$('.infos').show("slow");

if (arr == 1) {
$(this).css("cursor", "default");
$(this).addClass('already');
$(this).animate({
opacity: 0.1
}, 1000);
}
}
})
})

当我单击具有 raj 类的元素(它是一个图像)时,没有任何反应。只有在第二次单击它时,我的事件才会触发。为什么会这样?

编辑:这部分搞砸了:

if(arr == 1)
{
$(this).css("cursor", "default");
$(this).addClass('already');
$(this).animate({
opacity: 0.1
}, 1000);
}

但是 msg['valid'] 实际上总是 1,所以我不明白。

最佳答案

我想知道不应该是这样吗?

$(document).ready(function() { 
$('.raj').click(function(){
var thisObj = $(this);
if(!$(this).hasClass('already'))
{
$('.infos').html('');
$('.infos').hide("fast");
$.ajax({
type: "POST",
dataType: "json",
url: "ggg/hhh/rrr.php",
success: function(msg) {
$('.infos').html(msg['ats']);
arr = msg['valid'];
$('.infos').show("slow");

if(arr == 1) {
thisObj.css("cursor", "default");
thisObj.addClass('already');
thisObj.animate({
opacity: 0.1
}, 1000);
}
}
});

}
})
})

似乎是因为缩进难以阅读,所以放错了地方。

编辑:

附加信息:ajax 调用是异步的。也就是说,arr第一次没有设置为1,第二次是因为回调已经触发了(我对此的唯一解释)

关于javascript - 为什么我的事件没有第一次触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3928131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com