我有形式在哪裏輸入。輸入的答案和可見性可能會影響位於其下方的其他輸入的可見性。jQuery隱藏 - 如何知道元素是否已經開始隱藏但仍然可見?
我有一些javascript函數,當某些輸入的值發生變化時會調用它。該功能正在處理每個輸入並檢查其可見性和答案。根據這些信息,它可能隱藏或顯示一些其他輸入。一個循環就足夠了,因爲元素的可見性不會影響以前元素的可見性。
$(".test_this").each(function() {
var id_number = $(this).attr("id").split("_")[1];
var tested_id = parseInt(id_number) + 1;
if ($(this).find("input:checked").val() != 1 || $(this).is(":hidden")) {
if ($("#element_"+tested_id).is(":visible")) {
$("#element_"+tested_id).hide();
}
}
else {
if ($("#element_"+tested_id).is(":hidden")) {
$("#element_"+tested_id).show(500);
}
}
});
我的代碼運行良好,但我想添加持續時間來隱藏功能,但後來我的可見性檢查失敗。是否有可能知道某個元素是否已經開始隱藏但仍然可見?
我不想使用回調函數,因爲它在延遲後執行。其次,我不想改變隱藏輸入的值。一個解決方案是添加一些額外的類,可以檢查存在,但有沒有更好的方法來做到這一點?
我的代碼在小提琴:http://jsfiddle.net/nmUPj/3/
對於進一步的信息,我實際的代碼要複雜得多,並獲取有關從MySQL形式和產生形式和使用PHP的javascript代碼信息。
如果'隱藏()'使用沒有持續時間,它不是異步的,並且沒有「開始隱藏」,它是隱藏的或不是。如果它是動畫的,它將會......等待它......動畫 - > if($(element).is(':animated')){...}。你可能要找的只是給元素添加一個類,然後檢查這個類,因爲如果它是動畫或不是它不重要。 – adeneo
@adeneo感謝您的評論。也許增加新班是我的最佳選擇。 –