我有一个分解为 DIVS 的 HTML 页面。每个 div 包含一个特定的部分。一次只显示一个部分。我的要求是在每个部分从一个部分移动到另一个部分时刷新它。请查看以下 URL 中的代码,
http://jsfiddle.net/martyk/VE4sU/15/ jquery 代码,
// overwrite $jScroller to supply asynchronous callback when end has been reached:
$jScroller.scroll = function() {
for (var i in $jScroller.config.obj) {
if ($jScroller.config.obj.hasOwnProperty(i)) {
var
obj = $jScroller.config.obj[i],
left = Number(($jScroller.get.px(obj.child.css('left'))||0)),
top = Number(($jScroller.get.px(obj.child.css('top'))||0)),
min_height = obj.parent.height(),
min_width = obj.parent.width(),
height = obj.child.height(),
width = obj.child.width();
if (!obj.pause) {
switch(obj.direction) {
case 'up':
if (top <= -1 * height) {
$jScroller.stop();
obj.child.css('top','0px');
manager.callback();
break;
}
obj.child.css('top',top - obj.speed + 'px');
break;
case 'right':
if (left >= min_width) {left = -1 * width;}
obj.child.css('left',left + obj.speed + 'px');
break;
case 'left':
if (left <= -1 * width) {left = min_width;}
obj.child.css('left',left - obj.speed + 'px');
break;
case 'down':
if (top >= min_height) {top = -1 * height;}
obj.child.css('top',top + obj.speed + 'px');
break;
}
}
}
}
}
$jScroller.start = function() {
if ($jScroller.cache.timer === 0 && $jScroller.config.refresh > 0) {
$jScroller.cache.timer = window.setInterval($jScroller.scroll, $jScroller.config.refresh);
}
};
$(document).ready(function() {
function SectionManager() {
this.delayShortList = 15000;
this.marginShortList = 12;
this.currentSection = null;
this.sections = $("#content .section");
this.numSections = this.sections.length;
this.transition = function (){
//SCROLLER CODE STARTS HERE....
$jScroller.config.refresh = 100;
// Add Scroller Object
$jScroller.config.obj = [];
$jScroller.add(
"#content .section.active .activityTbl"
,"#content .section.active .activityTbl > table"
,"up"
, 3
);
// Start Autoscroller
$jScroller.start();
$jScroller.cache.init = true;
//SCROLLER CODE ENDS HERE....
};
this.onFullCycleCompleted = function () {
//window.location.replace(window.location.href);
alert("the following will trigger a page reload (UNLESS run from within jsfiddle): window.location.replace(window.location.href);");
};
this.callback = function () {
if (this.currentSection >= this.numSections-1) {
this.onFullCycleCompleted();
};
this.currentSection = (this.currentSection != null)
? (this.currentSection + 1) % this.numSections
: 0
;
$("#content .section").removeClass("active");
var $currentSection = $("#content .section:eq(" + this.currentSection + ")");
$currentSection.addClass("active");
var itemCount = $(".activityTbl table.data tr", $currentSection).length;
if (itemCount < this.marginShortList) {
setTimeout(function() {
manager.transition();
}, this.delayShortList);
} else {
this.transition();
};
};
this.run = function(){
this.callback();
};
}
manager = new SectionManager();
manager.run();
});
该页面基本上显示 Activity1 然后 Activity2 等等。我的要求是在显示内容之前从 Activity1 移动到 Activity2 时刷新内容。这样我就可以从服务器获得最新信息。