为什么这个函数需要在document.ready中?

时间:2016-06-09 11:02:13

标签: javascript jquery

我花了不少时间试图弄清楚为什么一个简单的函数在调试器中无法激活。最后我把它放在document.ready中并且它有效。但是在其他页面上,类似的功能在文档就绪之外工作。谁能想到这种情况发生的原因?

简单的功能:

$('#chk').change(function () {

....
}
页面上的

<input type="checkbox" id="chk" />

2 个答案:

答案 0 :(得分:3)

$(document).readyDOMContentLoaded上触发,这意味着已经处理了整个html来源,并且您确定可以访问您的输入

如果你省略并将脚本放在<input id="chk">之前,那么它就不会起作用,因为在脚本执行时它没有找到你的输入

答案 1 :(得分:-2)

这是一个非常大的页面吗?在浏览器完成构建DOM之前,javascript可能会开始运行。将代码放在文档中就意味着代码不会被调用,直到DOM完成100%。