我有一个装有ajax的表:
<div id="Dprg">
<table>
<tr><td ord="1">06:00</td><td>Event 1</td></tr>
<tr><td ord="2">06:30</td><td>Event 2</td></tr>
<tr><td ord="3">06:45</td><td>Event 3</td></tr>
<tr><td ord="4">07:00</td><td>Event 4</td></tr>
<tr><td ord="5">07:30</td><td>Event 5</td></tr>
<tr><td ord="6">08:25</td><td>Event 6</td></tr>
<tr><td ord="7">08:45</td><td>Event 7</td></tr>
<tr><td ord="8">09:10</td><td>Event 8</td></tr>
....etc...
<tr><td ord="58">00:30</td><td>Event 58</td></tr>
</table>
</div>
此表格以10%(窗口大小)高度div显示。我希望在这个div中加载一个表后滚动到实际的运行事件:获取实际时间并将其与第一个进行比较并滚动到它。 这是我的Jquery函数,用于在ajax文件加载后滚动,它对第一个加载的文件运行正常(甚至不准确)但是如果我将另一个程序加载到该div中..它滚动错误:
function scrollinfo(){
var dt = new Date();
var time = dt.getHours() + ":" + (dt.getMinutes()<10?'0':'')+ dt.getMinutes();
$('#Dprg tr').each(function() {
var myst = $(this).find("td").eq(0).html();
if (myst >= time){$('#Dprg').animate({scrollTop: $(this).offset().top-($('#Dprg').height()/2)}, 1000 );return false;}
});
}
非常感谢任何帮助。
答案 0 :(得分:1)
所以没有人回答,如果其他人在这里有类似的问题解决方案:用ajax加载数据后我必须重新滚动div到顶部(滚动到0)这将是第一步。比我必须更好地考虑时间(添加&#39; 0&#39;如果&lt; 10)几分钟和几小时。最后是第3列,它将保存每个事件的结束时间(3列表而不是2列)。那就是它! 这是最后的功能:
function scrollinfo(){
$('#Dprg').scrollTop(0); //very important
var dt = new Date();
var time = (dt.getHours()<10?'0':'')+(dt.getHours()+ ":" +
(dt.getMinutes()<10?'0':'')+ dt.getMinutes();
$('Table tr').each(function() {
var beg = $(this).find("td").eq(0).html();
var fin = $(this).find("td").eq(2).html();
if (beg <=time && time <=fin){
$('#Dprg').animate({scrollTop: $(this).offset().top}, 1000 );
return false;
}
});
}
为了最终确定这个想法,我添加了一个onmouseleave =&#34; scrollinfo();&#34;在手动滚动之后,它再次返回到右侧(实际运行事件)..并且运行顺畅! 谢谢stackoverflow大家庭,并照顾所有:-)!。