我不知道什么时候我们使用$(document).ready(function() { });,什么时候我们可以声明一个$(function() { }没有它被声明$(document).ready(function() { });
例如,以下代码段:
<body>
<textarea id="test" cols="50" rows="15"><p><h3>Test H3</h3>This is some sample text to test out the <b>WYSIWYG Control</b>.</p></textarea>
<script type="text/javascript">
$(function() {
$("textarea").htmlarea();
});
</script>
Run Code Online (Sandbox Code Playgroud)
在不使用$(document).ready(function() { });以下内容的情况下工作:
<body>
<textarea id="test" cols="50" rows="15"><p><h3>Test H3</h3>This is some sample text to test out the <b>WYSIWYG Control</b>.</p></textarea>
<script type="text/javascript">
$(document).ready(function(){
$("btn").click(function(){
alert('Hello!!!');
});
});
$(function() {
$("textarea").htmlarea();
});
</script>
Run Code Online (Sandbox Code Playgroud)
当我按下按钮时id="btn",它什么也没做.
我做错了吗?
在第二个例子,假设你实际上有一个按钮id的btn地方,问题是,你缺少#的ID来选择:
// ? here
$("#btn")
Run Code Online (Sandbox Code Playgroud)
调用$一个函数和调用$(document).ready与相同功能是等效的.
要回答"我什么时候需要等待ready"的问题,答案很简单,你需要等到DOM中存在一个元素才能找到它.有时,需要等到整个页面(尽管不一定是所有链接的资源)都已下载并解析为树; 有时你会在你需要的元素之后的某个时刻包含你的脚本,所以你根本不必等待; 有时你会对存在的元素使用事件委托(一个常见的例子就是整个文档).你几乎可以说这取决于偏好.