jquery函数提前启动

jquery函数提前启动,jquery,domready,Jquery,Domready,在我的脚本中,所讨论的函数位于 $(jquery).ready(function(){...}); 由于某种原因,它在加载DOM之前触发。我将在下面发布整个脚本。我对246-248行发生的事情感兴趣 这是马车的部分: alert(listObj.listOffset); listObj.allLists.offset({ left: listObj.listOffset }); listObj.allLists[listIndex].focus(); 再详细一点 脚本的这一部分试图将重点放在

在我的脚本中,所讨论的函数位于

$(jquery).ready(function(){...});
由于某种原因,它在加载DOM之前触发。我将在下面发布整个脚本。我对246-248行发生的事情感兴趣

这是马车的部分

alert(listObj.listOffset);
listObj.allLists.offset({ left: listObj.listOffset });
listObj.allLists[listIndex].focus();
再详细一点

脚本的这一部分试图将重点放在今天。有一个布局对象应启用此过程。它需要在DOM加载后运行,以便可以计算布局偏移量变量。早期加载时,偏移量最终为15000px,而不是400px

如果你能提供一些东西来寻找,这可能会帮助我找到答案,即使你不能找到解决方案。我知道这是很多代码。这是一个企业应用程序,很多人都在使用它

文档的“我的脚本”部分

        // bind listeners to time input fields
$('.timeBlock').on("blur", validateHrs);
$('.timeBlock').keyup(function () {
    var listObj = new LayoutObj();
    listObj.tabNav();
});

// bind listeners to prev/next buttons
$('.previous, .next').on("click", function () {
    var str = $(this).attr('class');
    var obj = new LayoutObj();
    obj.navDates(str);
});

// calculate totals for stored inputs
totalHrs();

// highlight today's date
var today = new Date();
var thisMonth = today.getMonth();
var thisDate = today.getDate();
var dateStr = '';
var splitDates = new Array();
var fullDates = new Array();
var listIndex;
var listObj;

fullDates = $('.dateNum');
fullDates.each(function (index) {
    splitDates[index] = $(this).text().split('/');
});

for (var i = 0; i < splitDates.length; i++) {
    if (thisMonth === (parseInt(splitDates[i][0], 10) - 1) && thisDate === parseInt(splitDates[i][1], 10)) {
        thisMonth += 1;
        thisMonth += '';
        thisDate += '';
        if (thisMonth.length < 2) {
            dateStr = "0" + thisMonth + "/";
        }
        else {
            dateStr = thisMonth + "/";
        }
        if (thisDate.length < 2) {
            dateStr += "0" + thisDate;
        }
        else {
            dateStr += thisDate;
        }
        fullDates[i].parentNode.setAttribute('class', 'date today');
        listIndex = i;
    }

    //The following code will shift the job lists to reveal today's date ///////, if it is not in the view on load.

}
var listObj = new LayoutObj();
listObj.listOffset = listObj.cellWidth * (listIndex + 1);

//alert(listObj.listOffset);
listObj.allLists.offset({ left: listObj.listOffset });
listObj.allLists[listIndex].focus();
});
//将侦听器绑定到时间输入字段
$('.timeBlock')。打开(“模糊”,验证EHRS);
$('.timeBlock').keyup(函数(){
var listObj=new LayoutObj();
listObj.tabNav();
});
//将侦听器绑定到上一个/下一个按钮
$('.previous,.next')。打开(“单击”,函数(){
var str=$(this.attr('class');
var obj=新布局对象();
目标导航日期(str);
});
//计算存储输入的总计
totalHrs();
//突出今天的日期
var today=新日期();
var thisMonth=today.getMonth();
var thisDate=today.getDate();
var dateStr='';
var splitDates=新数组();
var fullDates=新数组();
var指数;
var-listObj;
fullDates=$('.dateNum');
完整日期。每个(功能(索引){
splitDates[index]=$(this.text().split('/');
});
对于(变量i=0;i
LayoutObj

您应该使用:

$(document).ready(函数(){…})

如果您说它在加载DOM之前触发,那么在脚本中,您已经将整个代码放入了document ready块中。这些代码是否会影响大小调整


你确定代码没有被破坏吗?例如,您可以拉出该块并将其绑定到单击事件。

问题是第三方脚本!!愚蠢的剧本

神圣代码蝙蝠侠。你能不能把那堵墙上的文字剪下来?看看这个头像/用户名。有这么多人手。。。很多代码!LOLI不知道为什么他被否决了,他已经根据指南发布了一个完整的问题。我不知道你需要多少,因为我不知道问题在哪里。.ready()方法在相关行之后结束。在
.ready()
方法之后的所有内容都是无关的。您可以通过从ready方法中删除代码来开始调试,以查看问题是否仍然存在。然后发布演示问题的最低版本。或者将代码放在页面底部,而不使用document.ready:)@DavidChase只是为了看起来好看,让我们把事情分开。HTML在这里,JS在那里。:)你为什么认为这会解决它?他的格式非常好,如果您有
$
冲突,则必须使用该格式(尽管他的
.ready()
之外的代码可能是错误的)。我更正了问题的第一行,在他粘贴的实际代码中,他做得很正确。@MelanciaUK我说的都是SOC,我说如果你把js放在一个名为script.js的文件中,并把它放在页面底部,你就不必担心文档。准备好了,你肯定不希望html中有javascript代码块。。。。这里甚至有一个这样的参考