jQuery的位置工作在本地主机Cassini, jsFiddle,但总是返回0时,IIS或IIS express



我有一个表,每一行包含一个时间。表格应该在顶部显示一天中最接近的时间。例如,如果当前时间是12:03,那么表上的第一行应该是12:00。基本上表自动滚动取决于一天中的时间。

我有一个在Visual Studio开发环境(Cassini)中运行时工作良好的代码。代码也可以在jsFiddle中工作,但是当我在服务器中安装代码或使用IIS Express运行它时,位置总是返回0。我不明白为什么jquery的位置不工作或返回0时,IIS或IIS express使用。

下面是jquery代码:
$(document).ready(function () {
var tableID = $('.dcBooking')[0].id; //get the id of table.
var layerID = $('#' + tableID).parent().closest('div').attr('id'); //get the id of the div created by .Net
var currentdate = new Date();
var hour = currentdate.getHours();
var min = currentdate.getMinutes();
var mod = min % 10;
min = (min - mod); //Rounded to the closest previous 10 minutes
var id = getID(hour, min);
var timeTag = $('#' + id);
$('#' + layerID).animate({ scrollTop: timeTag.position().top }, 'slow');
});

HTML示例:

<div id="id1" style="overflow-x:visible;overflow-y:scroll;height:350px;position:relative;">
<table class="dcBooking">           
<tr id="h08_00_0"><td>08:00</td><td>Joe</td></tr>
<tr id="h12_10_0"><td>12:10</td><td>John</td></tr>
              :
              :
<tr id="h17_00_0"><td>07_00</td><td>Anna</td></tr>
</table>
</div>                  

我已经想不出为什么代码在卡西尼或jsFiddle中运行时返回一个位置,但它不安装在服务器上或在IIS express中运行。我想过安全问题,但是它在我的电脑上运行卡西尼,而不是IIS express,所以我想一定是一些IIS设置,但我不知道在IIS中找哪里。有谁能告诉我应该去哪里看什么或者有什么问题的原因吗?

我仍然不知道是什么原因导致的问题,但我能够使它的工作通过添加延迟到javascript。我认为也许等待加载而不是文档准备好将是解决方案,但它仍然不能与$(window).load()一起工作。我添加了300毫秒的延迟,并且位置返回的值不是零。如果有人有类似的问题,这里是我所做的工作。

$(document).ready(function () {
   setTimeout("setScrolling()", 300);
});
function setScrolling() {
    var currentdate = new Date();
    var hour = currentdate.getHours();
    var min = currentdate.getMinutes();
    var mod = min % 10;
    min = (min - mod); //Rounded to the closest previous 10 minutes
    var id = 'h' + hour + "_" + min;
    var timeTag = $('#' + id);

     $('#id1').animate({ scrollTop: timeTag.position().top }, 'slow');
 }

最新更新