大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
在页面加载结束后,浏览器会通过js为dom元素添加事件。原生的js中使用 window.onload 方法;在JQ中使用$(document).ready()。这个方法在dom载入就绪时对其进行操纵并调用执行它所绑定的函数。
成都创新互联主营白城网站建设的网络公司,主营网站建设方案,成都App定制开发,白城h5小程序制作搭建,白城网站营销推广欢迎白城等地区企业咨询
那么它和window.onload有何不同呢?
window.onload是在网页中所有元素 加上所有资源 ++完全加++载到浏览器后才执行。
而$(document).ready()中绑定的事件是在 dom完全就绪 时就可以被调用,此时对于jQuery来说都是可以被访问的(关联的资源可能并没有被加载完毕)。
举个例子来说,在$(document).ready()中定义了图片的宽高,但由于此时图片还没有被加载完毕,此时的宽高不会生效。要解决这个问题可以使用jQuery中的 load ()方法。
load()方法会在元素的onload事件中绑定一个处理函数,如果该处理函数绑定给window对象,则会在所有资源加载完毕后触发,如果load绑定在元素上则会在该元素加载完毕后触发。
既然window.onload比较完备为什么还要用jQuery中的$(document).ready()呢?
window.onload事件 每次只能保存对一个函数的引用 ,他会覆盖掉之前的函数,所以不能再现有行为上添加新的行为。如果引用了多个js文件,每个都需要window.onload方法就导致编码复杂。
使用$(document).ready()方法能够很好地解决这种问题,每次调用$document.ready()方法都会在现有行为上追加新的行为,这些行为会根据注册顺序依次执行。
$(function(){})是基础页面加载完成后运行的,还有几种方式是var get = function(){} 或者function get(){} 或者$("定位").click(function(){})
$("#btnLogin").click(alert("!!!!"));
你的这种写法是不对的
click(function)
click函数需要传入一个function,作为回调函数。
但是你现在click(alert("!!!!"))
传入的不是一个function
alert("!!!!")的返回值是undefined
因此你这句相当于
先执行alert("!!!!")
然后把返回值undefined传入到click函数中作为参数
变成了click(undefined);
当然就错了。
正确是function(){alert("!!!!");)
放到一个function中