[英]Call external function from ajax() success function
我在$(document).ready()
定義了一個函數,該函數使用DoT.js將一些JSON排列為HTML:
$(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()
處理程序請求更多/不同的JSON數據,該鏈接應使用返回的數據再次執行arrangeResults
,但未執行該功能:
$('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()
塊內進行$(document).ready()
AJAX調用。
可能是因為您在$(document).ready()
塊中有rangingResults函數。 因此,您將無法從JScript的其他部分調用該函數。 像這樣定義它:
function arrangeResults(jsonObject, templateFunc) {
...
}
$(document).ready(function() {
...
);
等等。 如果我錯了,請糾正我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.