2016-07-22 64 views
-1

我想在AJAX完成更新值後重新填充div。 這是我正在嘗試使用的AJAX代碼。當AJAX完成時重新填充div

$(document).on("sf:ajaxfinish", ".searchandfilter", function(){ 
      console.log("ajax complete"); 
      //so load your lightbox or JS scripts here again 
      $(".things").refresh(); 
     }); 

我的控制檯現在說refresh is not a function這是正確的。因爲我沒有寫一個函數。事情是,我真的不知道如何編寫一個函數來刷新div .things。我希望這裏有人能幫助我?

我嘗試這樣做:

function refresh { 
    $('.things').load(document.URL + ' .things'); 
} 

但是,這給我一個語法錯誤,我不知道這是正確的方式去?

這是我的控制檯日誌。

S&F JS initialised script:125:4 
ajax start script:110:5 
ajax complete script:118:4 
TypeError: $(...).refresh is not a function 

在此先感謝!

+0

你問你如何在jQuery中創建一個插件? –

+0

不,我不是這樣問的。我問是否有人知道如何使用我給出的示例代碼刷新.things div。因爲我卡住了。 – Steggie

+0

好的。這很令人困惑,因爲'$()。refresh()'意味着你想創建一個插件。 –

回答

2

改變這一點:

$(".things").refresh(); 

這只是:

refresh(); 

和剛纔注意到你已經錯過了還是這裏有一個錯字:

function refresh { // here you don't have() as functions requires these. 

refresh();是一個功能沒有達到hod綁定在選擇器上。


根據你的評論,你可以傳遞函數的ARGS選擇和使用它像:

function refresh($el){ 
    $el.load(document.URL + ' .things'); 
} 

現在你可以這樣調用它:

refresh($('.things')); 
+0

但是,我不需要告訴腳本哪個div刷新? 如果我改變它只refresh();我得到這個: 單曲&F JS初始化vaararrangementen:125:4 AJAX啓動腳本中:110:5 AJAX完整的腳本:118:4 的ReferenceError:刷新沒有定義 ' – Steggie

+0

@Steggie'函數刷新{'這是不是一種定義任何功能的方法。在控制檯中是否有任何其他錯誤?或者你能否確認你在那裏有一個正確的功能? – Jai

+0

@Jay:這工作。 ('。things')。load(document.URL +'.things');函數refresh(){ \t \t $('。things')。load(document.URL +'.things'); \t}' 謝謝! – Steggie

0

你正在編寫乾淨的代碼但請記住refresh()是用戶定義的函數,而不是預定義的函數。

所以,你只需要使用下面

refresh(); 

,而不是

$(".things").refresh(); 

一件事我在你的代碼注意。你可以在下面的代碼中添加()

function refresh { 
$('.things').load(document.URL + ' .things'); 
}