1
我已經內$(document).ready()
定義的函數外部函數可組織一些JSON到使用HTML DoT.js:呼叫從阿賈克斯()函數成功
$(document).ready(function() {
function arrangeResults(jsonObject, templateFunc) {
$(jsonObject).each(function(i, item) {
$.each(item, function(i2, item2) {
$('#ajax-article-list .col-left').append(templateFunc(item2));
});
});
};
我在頁面加載一個AJAX調用它執行此功能顯示數據:
$.post(ajaxRequestURL, function(data) {
arrangeResults(ajaxData.pages, projectTemplate);
}
,這工作正常。
但是我有一套它要求使用click()
處理程序,它應與返回的數據再次執行arrangeResults
更多/不同的JSON數據鏈接,但不執行的功能:
$('nav.filters a').click(function(ev) {
ev.preventDefault();
$.post(ajaxRequestURL, function(data) {
ajaxData = parseJSON(data);
arrangeResults(ajaxData.pages, projectTemplate);
}
}
這並未沒有工作。這些數據都是有效的,並且如果我將arrangeResults
的內容直接放在腳本中,所有內容都可以正常工作,但是我希望遵循DRY並具有一個外部函數,我可以在頁面加載和當其中一個過濾器被點擊。
我想這是因爲AJAX調用是異步的,但由於函數調用在success
內,我推測這不會導致問題。
謝謝,這與在$(document).ready()之外定義模板函數一樣簡單。 – melat0nin