我有一個HTML頁面被分解爲DIVS。每個div包含一個特定的部分。一次只顯示一個部分。我的要求是在從一個部分移動到另一個部分時刷新每個部分。請看看代碼以低於網址,使用jquery重新加載/刷新頁面部分
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();
});
的頁面基本上顯示活性1然後活性2等。我的要求是在顯示它之前從Activity1移動到Activity2的時候刷新內容。這樣我可以從服務器獲得最新的信息。
這聽起來像你希望我們爲你做你的工作..你在哪裏堅持到底?那麼你的代碼太多了......你應該嘗試隔離你的問題並簡化它。 – abbood 2013-03-11 17:53:54
當前代碼在整個循環結束後刷新頁面。但我不知道如何刷新部分之間的頁面。所以在上面的代碼行中this.callback = function()if(this.currentSection> = this.numSections-1){this.onFullCycleCompleted();} {this.onFullCycleCompleted(); };整個循環後刷新頁面。我不確定如何調整它,而不是整個週期,它會在每個部分之後刷新。 – developer 2013-03-11 18:03:44