我有一個包含大約260行的數據表。這些行中的每一行均由諸如parentHeaderName之類的屬性標識。當點擊該表的頭,我有一些jQuery的的地方,簡單地更改了標題到ajaxload.gif圖像,這樣jQuery時機 - 想在方法中添加類似於DoEvents()的東西
$('#Header').html('<img src="images/ajaxload.gif"');
,然後我通過調用
$([parentHeaderName=something]).toggle();
切換所有260行
不幸的是,我無法獲得將代碼頭改爲ajaxload.gif以正確運行的部分代碼。就好像這個聲明和切換聲明都在同時運行。意思是說,用戶永遠不會看到ajaxload.gif。我可以讓圖像顯示的唯一方法是如果我在兩個語句之間放置警報('...')消息。顯然,這不是一個解決方案。我試過使用delay()和setTimeout無濟於事。我想我需要的是某種類似於jQuery或JavaScript的DoEvents,它可以在切換執行之前顯示圖像。
任何想法?
謝謝, 克里斯
更新:感謝您的反饋鄉親。下面是實際的代碼:(此代碼實際上改變了頭expand.gif或collapse.gif,而不是ajaxload.gif)
$('.sixdegreestypeheader').click(function() {
var headerName = $(this).attr("headername");
var jq = "[headername$=" + headerName + "]";
var jq2 = "[parentheadername$=" + headerName + "]";
var originalTextValue = $(jq).text();
var originalHTMLValue = $(jq).html();
if (originalHTMLValue.indexOf("collapse") == -1) {
$(jq).html('<img src="images/collapse.gif" /> ' + originalTextValue);
}
else {
$(jq).html('<img src="images/expand.gif" /> ' + originalTextValue);
}
// alert('break here to act as a DoEvents.') // this forces the image change... but I don't want to have to use an alert to force this
$(jq2).toggle();
return false;
});
我曾嘗試延遲建議
$(jq2).delay(500).toggle();
但它沒有任何幫助。當需要切換的行數很少時 - 比方說,最多可達20個 - 沒有問題。但在某些情況下,我需要隱藏了一堆(例如260),它是彷彿瀏覽器需要幾秒鐘通過DOM突突做所有的事情隱藏的。這就是我最初希望使用ajaxload.gif圖像的原因。
謝謝, 克里斯
請將您的代碼發送 –