2011-02-16 55 views
1

我試圖用這個標籤來加載內容與Ajax到div。我無法在間隔時間刷新它。但是,上半部分確實有效。jQuery加載一些基於其類是「活躍」的東西

<script type="text/javascript"> 
$(function rlAl() { 
    if ($("#xicon1").hasClass("active")) { 
    $("#actionlist").load("alcurrent.php"); 
    } 
    else if ($("#xicon2").hasClass("active")) { 
    alert("icon2"); 
    } 
    else if ($("#xicon3").hasClass("active")) { 
    alert("icon3"); 
    } 
}); 
$(function() { 
setInterval(rlAl, 5000); 
}); 
</script> 
+0

順便說一下,它大概一個每次選項卡更改時加載(和緩存)內容的更好主意,而不是每5秒鐘一次。在服務器上每5秒鐘可能會很沉重(假設許多併發用戶)。因此,如果我只坐在頁面上,並在5分鐘內不做任何事情(也許我休息並離開網站),腳本將連接到服務器60次。想象一下500名用戶 - 每5分鐘就有30,000次無用的連接。這不是太多要處理,但它肯定是浪費了服務器資源。也許可以嘗試預加載內容(如果可以),或者緩存它,或者在更改制表符時加載。 – davin 2011-02-16 08:50:04

回答

3

rlAl is undefined,因爲它沒有連接到全球範圍,把它拿出來$()你有它才能在window命名空間進行註冊

function rlAl() { 
    if ($("#xicon1").hasClass("active")) { 
    $("#actionlist").load("alcurrent.php"); 
    } 
    else if ($("#xicon2").hasClass("active")) { 
    alert("icon2"); 
    } 
    else if ($("#xicon3").hasClass("active")) { 
    alert("icon3"); 
    } 
} 
$(function() { 
    rlAl(); // so it executes straight away on DOM ready 
    setInterval(rlAl, 5000); 
}); 
+0

非常感謝。第二個函數如何在$(然後? – 2011-02-16 08:17:03

相關問題