$(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
(它是一個圖像)的元素,沒有任何反應。只有第二次點擊後,我的事件纔會發生。這是爲什麼發生?爲什麼我的活動不是第一次開火?
編輯: 這部分F * cked起來:
if(arr == 1)
{
$(this).css("cursor", "default");
$(this).addClass('already');
$(this).animate({
opacity: 0.1
}, 1000);
}
但msg['valid']
真的是始終爲1,所以我不明白這一點。
試試吧,但是結果的處理必須在ajax調用返回在結果實際完成前你已經檢查過結果 – Vinzenz 2010-10-13 21:42:53
@Vinzenz:爲什麼這裏不行'$(this)',我們必須使用'thisObj'? – 2010-10-13 21:44:57
+1另一件需要記住的事情是'$ .ajax'有一個'context:'屬性,你可以在回調中設置'this'的值,所以你可以添加'context:this',讓'this'引用回調中的元素。 – user113716 2010-10-13 21:48:38