向下滚动并将内容加载到我的页面时出现问题。 ajax执行加载太快,所以第二个,第三个等等......从第一个ajax调用中获取正确的信息,这些信息被加载到DOM中。
如何制作,所以只有在最后一次ajax调用完成且成功时才会运行脚本。 它应该跳过每次向上和向下滚动,直到最后一次ajax调用完成。然后允许执行ajax。 然后一遍又一遍,直到没有更多的东西通过ajax加载。
这是我的jQuery脚本。
<script type="text/javascript">
$(document).ready(function(){
$(window).scroll(function(){
if ($(window).scrollTop() <= $(".wrapper_ac").offset().top + $(".wrapper_ac").height()) {
$(document).ajaxStart(function () {
var ajaxURLvalue = '../../modules/language_text_loading/load_content.php';
var langID = 'x';
var onID = 'x';
var setLimit = 'x';
var setIn = 'after';
var theme = 'x';
var setInWhere = 'x';
var conID = 'x';
loadInstant(ajaxURLvalue, langID, onID, setLimit, setIn, theme, setInWhere, conID);
});
}
});
});
</script>
这是我的功能。
function loadInstant(ajaxURLvalue, langID, onID, setLimit, setIn, theme, setInWhere, conID) {
var temp_s = $(".ltlID:last").attr("id");
var split_ltlID = temp_s.split(':');
var ltlID = split_ltlID[0];
var acContentBoxID = split_ltlID[1];
var dataString = {
action: 'load',
last_ltlID: ltlID,
//sharedID:acContentBoxID_sharedID,
langID:langID,
setInWhere: setInWhere,
onID:onID,
theme:theme,
conID:conID
};
$.ajax({
type: "POST",
url: ajaxURLvalue,
data: dataString,
cache: false,
success: function(html){
$("#accordionContent"+acContentBoxID+":last").after(html);
});
};
感谢您的帮助。
答案 0 :(得分:0)
我要做的就是将ajax函数存储到这样的全局变量中:
global_variable = $.ajax({
type: "POST",
url: ajaxURLvalue,
data: dataString,
cache: false,
success: function(html){
$("#accordionContent"+acContentBoxID+":last").after(html);
});
在ajax调用之前检查变量是否像这样:
if(global_variable){
return false;
}
这将停止在运行结束之前调用任何ajax调用。我希望它可以帮到你!