0
你好,我知道关于“on”的方法,这里的大部分关于“on”的答案都不是特定的。有人可以帮我解决这个问题吗?如何让jquery脚本在Ajax dom追加后工作?
$(function(){
var pagePositon = 0,
sectionsSeclector = 'article#sector',
$scrollItems = $(sectionsSeclector),
offsetTolorence = 30,
pageMaxPosition = $scrollItems.length - 1;
//Map the sections:
$scrollItems.each(function(index,ele) { $(ele).attr("debog",index).data("pos",index); });
// Bind to scroll
$(window).bind('scroll',upPos);
//Move on click:
$(document).keypress(function(e) {
if (e.which == 100 && pagePositon+1 <= pageMaxPosition) {
pagePositon++;
$('html, body').stop().animate({
scrollTop: $scrollItems.eq(pagePositon).offset().top
}, 300);
}
if (e.which == 97 && pagePositon-1 >= 0) {
pagePositon--;
$('html, body').stop().animate({
scrollTop: $scrollItems.eq(pagePositon).offset().top
}, 300);
return false;
}
});
//Update position func:
function upPos(){
var fromTop = $(this).scrollTop();
var $cur = null;
$scrollItems.each(function(index,ele){
if ($(ele).offset().top < fromTop + offsetTolorence) $cur = $(ele);
});
if ($cur != null && pagePositon != $cur.data('pos')) {
pagePositon = $cur.data('pos');
}
}
});
当你按下“d”或“a”它会转到next或prev id =“sector”,那很好。但偶尔,在Ajax Call和新文章追加后,脚本无法移动到它们。我知道他们没有绑定(在刷新dom后)以及如何在Ajax dom更改后使脚本生效?
_it转到下一个或prev与id =“扇区”_ds必须是**唯一的** – Andreas
您必须更新'$ scrollItems'。否则,它只包含分配时出现的元素。 – Andreas
我知道它,所以我需要一个明显的例子,伙计们。我甚至不能谷歌的例子来解决我的问题。 – MonkeyCoder