我正在尝试制作一个AJAX请求,在显示div时更新div的内容。我最初的想法是使用一个观察div显示的事件观察者,但我似乎找不到合适的处理程序。有没有一种简单的方法可以为'on show?'上的元素发出AJAX请求?
答案 0 :(得分:0)
通过“on show”我假设您的意思是在浏览器视口中可见。在这种情况下,您需要检查元素是否在视口中,然后观察会改变它的任何内容。
这是一个用于检查元素是否在视口内的基本函数:
function withinViewport(el) {
var elOffset = $(el).cumulativeOffset(el);
vpOffset = document.viewport.getScrollOffsets();
elDim = $(el).getDimensions();
vpDim = document.viewport.getDimensions();
if (elOffset[1] + elDim.height < vpOffset[1] || elOffset[1] > vpOffset[1] + vpDim.height ||
elOffset[0] + elDim.width < vpOffset[0] || elOffset[0] > vpOffset[0] + vpDim.width) {
return false;
}
return true;
}
然后你可以 - 例如 - 观察滚动事件以检查元素是否已移入视图
Event.observe(window, 'scroll', function() {
if(withinViewport('element')){
new Ajax.Updater("element","script.php");
}
});