jQuery:为什么元素存在于文档准备好的页面上?

时间:2013-02-04 16:15:38

标签: jquery events click chain insertafter

我很好奇为什么下面的代码会在页面上显示“为什么这个文字出现在加载中?”

<!DOCTYPE html>
<html lang="en">
<head>
<title>Hello title</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
<script>
$(function() {
    $('<h4>Why this text appears on load</h4>').click(function() {
        alert('3');
    }).insertAfter($('h1'));
});
</script>
</head>
<body>
    <h1>H</h1>
</body>
</html>

3 个答案:

答案 0 :(得分:4)

在jquery.js中,jQuery通过使用DOMContentLoaded事件或document.onreadystatechange事件来监听DOM的准备情况。 dom准备就绪后,所有已传递给.ready()的回调都会被触发,之后对.ready()的任何调用都会立即执行。

注意:$(function(){})相当于$(document).ready(function(){})

答案 1 :(得分:2)

document.ready()

$('<h4>Why this text appears on load</h4>')后插入

insertAfter($('h1'));

$(function() {})document.ready(function() {})的缩写形式,只要页面中的html元素可用,就会执行。

答案 2 :(得分:2)

$(function(){})$(document).ready(function(){})的简写。因此,当文档(DOM)准备就绪时,您的代码就会运行。

您创建了一个<h4>元素,为其指定了一个点击处理程序,然后在页面上的每个<h1>后附加它。