博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jquery中"$(document).ready(function(){ })"函数的使用详解
阅读量:6718 次
发布时间:2019-06-25

本文共 1821 字,大约阅读时间需要 6 分钟。

Jquery是优秀的Javascrīpt框架,$是jquery库的申明,它很不稳定(我就常遇上),换一种稳定的写法jQuery.noConflict(); jQuery(document).ready(function(){});

使用jQuery的好处是它包装了各种浏览器版本对DOM对象(javascript的DOM对象你应该知道吧,就是它了)的操作.

比如jquery写法:

1 $("div p"); // (1)2 $("div.container"); // (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 (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()使用小结

window.onload = function(){ alert("welcome"); }

这样的写法作用是希望在页面加载完,自动执行定义js代码(function)。

$(document).ready(function(){.... })

这个函数是用来取代页面中的window.onload;

document.ready()和传统的方法<body οnlοad=”load()”> 相似

不同的是onload()的方法是在页面加载完成后才发生,这包括DOM元素和其他页面元素(例如图片)的加载,因此,使用 document.ready() 方法的执行速度比onload()的方法要快。

 Javascript 只有在DOM元素已经定义以后才可以对其执行某种操作,

jQuery使用document.ready来保证所要执行的代码是在DOM元素被加载完成的情况下执行。比如:

这段代码的意思是:当Dom Tree加载完成后,显示警告信息。

最后要注意两点:

确保在 <body> 元素的onload事件中没有注册函数,否则可能不会触发$(document).ready()事件。(我尝试用下面的例子来演示这个情况,但是没有成功,所以我想这种情况只是可能发生。)

1  2      3          4             My second jQuery 5          6          8         19     20     21         

22 jQuery 简单例子223

24

25 I would like to say:26

27 28 29

可以在同一个页面中无限次地使用$(document).ready()事件。其中注册的函数会按照(代码中的)先后顺序依次执行。

 

转载地址:http://tmkmo.baihongyu.com/

你可能感兴趣的文章
c++opencv项目移植到Android(Mat—》IplImage*)
查看>>
嵌入式linux------SDL移植(am335x下显示yuv420)
查看>>
当vcenter是linux版本的时候Sysprep存放路径
查看>>
代码管理(五)git 删除分支
查看>>
[学习笔记]Spring依赖注入
查看>>
网络虚拟化(SDN,NFV..)和企业骨干网的演化
查看>>
怎么确保站点的可用性
查看>>
我的第一个android应用——装逼神器《微博尾》
查看>>
[3] MQTT,mosquitto,Eclipse Paho---怎样使用 Eclipse Paho MQTT工具来发送订阅MQTT消息?
查看>>
jsTree插件简介(三)
查看>>
[PHP] 通用网关接口CGI 的运行原理
查看>>
phoenixframe自己主动化平台在Linux环境下运行用例的说明
查看>>
Linux:sheel脚本for的用法,及日期参数+1day用法
查看>>
函数式编程
查看>>
spring boot mybatis没有扫描jar中的Mapper接口
查看>>
ijkPlayer 集成
查看>>
Python 文件 writelines() 方法
查看>>
背水一战 Windows 10 (76) - 控件(控件基类): Control - 基础知识, 焦点相关, 运行时获取 ControlTemplate 和 DataTemplate 中的元素...
查看>>
图像滤镜艺术---Glow Filter发光滤镜
查看>>
create-react-app 引入 antd 及 解决 antd 样式无法显示的bug
查看>>