1.jQ中页面加载完毕后自动执行js的方法
1).整个页面的document全部加载完成以后执行。
window.onload =function() {
$("table tr:nth-child(even)").addClass("even");
//这个是jquery代码
};
2).加载DOM结构后执行
$(document).ready(function() {
//任何需要执行的js特效
$("table tr:nth-child(even)").addClass("even");
});
3).同2
$(function() {
$("table tr:nth-child(even)").addClass("even");
//任何需要执行的js特效
}
2.jQ中的选择器表达式有哪些?
单独列一篇说明
3.jQuey的加载问题
看下面的例子:
<html>
<head>
<title>无标题文档</title>
</head>
<script type="text/javascript" src="./jquery-1.8.0.js"></script>
<script type="text/javascript">
$(document).ready(
function(){
$("#button1").click(
function(){
alert("button1 click");
}
)
}
)
$("#button2").click(
function(){
alert("button2 click");
}
)
</script>
<body>
<input id = "button1" type="button" value="button1" /><br/>
<input id = "button2" type="button" value="button2" /><br/>
<input id = "button3" type="button" value="button3" /><br/>
</body>
<script type="text/javascript">
$("#button3").click(
function(){
alert("button3 click");
}
)
</script>
</html>
上面的代码中,有三个button,程序的功能是点击任意一个button会调用对应的方法,弹窗显示对应的button被点击,点击button1和button3会正常弹窗,点击button2的时候却发现没有弹窗,这是为何?
这个问题涉及到js的加载问题,html文档是从上到下加载,button1.click是写在ready块中,等到dom树解析完毕后才会执行,事件会绑定到对应的节点上,点击正常弹窗提示。
button2.click没有写在ready块中,在dom树还没开始解析就已经执行,会出现事件没有绑定到对应的dom节点上的问题,点击时候由于事件与节点并未绑定,所以无法正常弹窗。
button3.click是写在body代码块后面,html从上到下执行,执行到这里时,dom树已经解析完成,事件也会绑定到对应的节点上,点击正常弹窗提示。