![](/img/trans.png)
[英]Combine two functions? Javascript and AJAX api call with throbber
[英]combine two ajax functions?
好的,我有這個:
/******AJAX SUBPAGES ACADEMIES****/
coachesLinks.click(function (e) {
e.preventDefault();
});
coachesLinks.click(function (e) {
var $el = jQuery(this);
var URL = $el.attr('href');
var URL = URL + " .main";
jQuery(contentTwo).show('slow').load(URL, function () {
scrollToAnchor('content_two');
ajaxloader('.academy_coaches_readmore');
accordion();
$('.main').css('overflow', 'visible');
$(contentTwo).css('overflow', 'visible');
jQuery('#content_two .back').on('click', function () {
jQuery(this).hide('slow');
if (contentTwo.is(':hidden')) {
jQuery('#content_two .back').hide();
} else {
contentTwo.hide('slow');
jQuery(contentmain).show('slow');
jQuery(contentmain).css('overflow', 'visible');
scrollToAnchor('access');
}
});
});
$(contentmain).hide('slow');
});
和這個:
function ajaxloader(myselector) {
internalLinks = jQuery(myselector);
internalLinks.click(function (e) {
e.preventDefault();
});
internalLinks.click(function (e) {
var $el = jQuery(this);
var URL = $el.attr('href');
var URL = URL + " .main";
jQuery(contentTwo).show('slow').load(URL, function () {
scrollToAnchor('content_two');
$('.main').css('overflow', 'visible');
$(contentTwo).css('overflow', 'visible');
jQuery('#content_two .back').on('click', function () {
jQuery(this).hide('slow');
if (contentTwo.is(':hidden')) {
jQuery(contenttwoback).hide();
} else {
contentTwo.hide('slow');
jQuery(contentmain).show('slow');
jQuery(contentmain).css('overflow', 'visible').delay(100);
scrollToAnchor('access');
}
});
});
$(contenttwoback).show('slow');
$(contentmain).hide('slow');
});
}
這些變量:
/******variables******************/
var contentmain = jQuery('#content > .main');
var contentTwo = jQuery('#content_two');
var siteURL = 'http://' + top.location.host.toString();
var coachesLinks = jQuery(' .academy_readmore');
我正在這樣調用第二個函數:
/******AJAX SUBPAGES SUBMENU FUNCTION****/
ajaxloader('#submenunav ul li a');
/******AJAX SUBPAGES COACHES****/
ajaxloader('#accordion .coaches_readmore');
/******AJAX LESSONS***/
ajaxloader('#accordion .lessons_readmore');
哪個功能最完美,我的問題是如何使用嵌套的ajax作為參數調用第二個函數? 像這樣的東西(不起作用):
ajaxloader('#accordion .lessons_readmore' ajaxloader('.academy_coaches_readmore'));
將第二個ajax負載嵌套在第一個ajax加載器內部? 克里斯的完整代碼副本在這里: http : //jsfiddle.net/JGVEb/
您是說要串行執行這些AJAX請求,以便第二個請求僅在第一個請求完成后才發生嗎?
您可以在函數中提供回調函數作為參數。 像這樣:
function ajaxloader(myselector, callback) {
// some code
jQuery(contentTwo).show('slow').load(URL, function () {
// more code
if (callback) { callback(); }
});
};
這樣,它將在完成AJAX請求后調用回調。 然后,您將像具有回調的其他任何jQuery函數一樣調用它:
ajaxloader('#accordion .lessons_readmore', function () {
ajaxloader('.academy_coaches_readmore'));
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.