2013-08-04 49 views
-1

我正在使用jQuery的.load()來替換我的頁面上的div與來自php文件的表格。我使用回調函數來運行另一個函數,該函數修改剛剛加載的數據,但是它在加載表之前正在運行該函數,導致該函數無法執行任何操作。
有沒有辦法強制加載後運行回調?我使用.load()每10秒運行一次,所以我不能讓它等待。jQuery.load()回調函數完成之前運行

這裏是我想要做的事:

function fixSelected(){ 
    $.each(selected, function(index, value) { 
    document.getElementById(value).innerHTML = '-'; 
    }); 
} 

function refreshTable() { 
    $('#tablefill').load('table.php', function(){ 
     fixSelected(); 
    }); 
} 

變量selected是含有正被裝載在桌子上的幾個按鈕的ID的數組。

+2

我更喜歡使用.ajax(...);您可以在其中定義成功和錯誤功能。 – frenchie

+0

您的代碼看起來正確。也許你正在別處調用'fixSelected'。請提供重現問題的http://jsfiddle.net/演示。 –

+0

可能重複的[JQuery .load()回調函數](http://stackoverflow.com/questions/3973933/jquery-load-callback-function) –

回答

-1

我有一個$(document).ready(function() {在table.php導致回調函數只是不工作。不知道爲什麼發生這種情況,但刪除它解決了這一切。

-1

您需要通過回調函數的load()函數的這樣的第三個參數:

function fixSelected(){ 
    $.each(selected, function(index, value) { 
     document.getElementById(value).innerHTML = '-'; 
    }); 
} 

function refreshTable() { 
    $('#tablefill').load('table.php', fixSelected); 
} 

我發現這裏的解決方案:
jQuery.load() doesn't work with a defined function as a callback?

看到這個的jsfiddle爲例:
http://jsfiddle.net/bayoffire/kNWpD/1/

+0

會更合適,因爲您從另一個問題的這個答案標記在評論和標誌作爲一個副本,而不是繼續用相同的答案回答新問題。 –

+0

很抱歉,我還沒有足夠的知名度評論一個問題。我爲MOOcow102提供了運行代碼,隨時可以複製和運行。 – lukassteiner

+0

這沒有奏效。出於某種原因,當我在回調函數中有任何東西時,它只會在加載頁面時運行,而不是在刷新table.php時運行。 – MOOcow102

相關問題