Jquery中$(document).ready(function(){})函数的使⽤
详解
Jquery是优秀的Javascrīpt框架,$是jquery库的申明,它很不稳定(我就常遇上),换⼀种稳定的写法Conflict();
jQuery(document).ready(function(){});
使⽤jQuery的好处是它包装了各种浏览器版本对DOM对象(javascript的DOM对象你应该知道吧,就是它了)的操作.
⽐如jquery写法:
1 $("div p"); // (1)
2 $("ainer"); // (2)
3 $("div #msg"); // (3)
4 $("table a",context); // (4)
5 $("#myId"); //(5)
第⼀⾏代码得到所有<div>标签下的<p>元素。
第⼆⾏代码得到class 为container的<div>元素,
第三⾏代码得到<div>标签下⾯id为msg的元素。
第四⾏代码得到context为上下⽂的table⾥⾯所有的连接元素。
第五⾏代码得到id为myid的所有元素
如果你熟悉CSS,你会觉得这些写法很眼熟!对了。正是。看出奥妙了吧。jquery就是通过这样的⽅式来到Dom对象⾥⾯的元素。跟CSS 的选择器相类似。
现在回答你的具体问题吧
$(document).ready(function(){
alert("hello");
});(1)
html
1 <body onload="alert('hello');">(2)
上⾯两段代码是等价的。但代码1的好处是做到表现和逻辑分离。并且可以在不同的js⽂件中做相同的操作,即$(document).ready (fn)可以在⼀个页⾯中重复出现,⽽不会冲突。基本上Jquery的很多plugin都是利⽤这个特性,正因为这个特性,多个plugin共同使⽤起来,在初始化时不会发⽣冲突。
如果我们在
$(document).ready(function(){
加⼊内容A
});
内容A:
$(".btn-slide").click(function(){
alert("你单击了a标签中class等于btn-slide的连接");
});
则表⽰当我们单击class=btn-slide的超级连接时弹出“你单击了a标签中class等于btn-slide的连接”对话框.
如此⽅便易⽤,因此使⽤jquery是⼀个不错的选择。
$(document).ready()使⽤⼩结
这样的写法作⽤是希望在页⾯加载完,⾃动执⾏定义js代码(function)。
$(document).ready(function(){.... })
这个函数是⽤来取代页⾯中的load;
不同的是onload()的⽅法是在页⾯加载完成后才发⽣,这包括DOM元素和其他页⾯元素(例如图⽚)的加载,因此,使⽤ ady()⽅法的执⾏速度⽐onload()的⽅法要快。
Javascript 只有在DOM元素已经定义以后才可以对其执⾏某种操作,
jQuery使⽤ady来保证所要执⾏的代码是在DOM元素被加载完成的情况下执⾏。⽐如:
<script type="text/javascript">
$(document).ready(function () {
alert("我的第⼀个jQuery代码!");
});
</script>
这段代码的意思是:当Dom Tree加载完成后,显⽰警告信息。
最后要注意两点:
确保在 <body> 元素的onload事件中没有注册函数,否则可能不会触发$(document).ready()事件。(我尝试⽤下⾯的例⼦来演⽰这个情况,但是没有成功,所以我想这种情况只是可能发⽣。)
1<html>
2<head>
3<title>
4            My second jQuery
5</title>jquery框架定义
6<script type="text/javascript" src="/js/jquery.js">
7</script>
8<script type="text/javascript">
9//下⾯是load的函数含有jquery注册函数$
10function load() {
11                $("p").append("<b>Hello</b>");
12            }
13//下⾯是jQuery的代码
14            $(document).ready(function() {
15                $("p").append("我的第⼀个jQuery代码!");
16                $("p").append("<b>Hello</b>");
17            });
18</script>
19</head>
20<body onload="load()">
21<h2>
22            jQuery 简单例⼦2
23</h2>
24<p>
25            I would like to say:
26</p>
27</body>
28
29</html>
可以在同⼀个页⾯中⽆限次地使⽤$(document).ready()事件。其中注册的函数会按照(代码中的)先后顺序依次执⾏。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。