jQuery中click事件是不是必须放在$(document).ready(function(){})之中才起作用,为什么?
放在这里面和不放在这里面有何区别?
jQuery中click事件是不是必须放在$(document).ready(function(){})之中才起作用,为什么?
放在这里面和不放在这里面有何区别?
页面加载是从头到尾加载的,解析js的时候如果在js中使用的dom在这段js之前的位置没有出现那么会报错,$(document).ready(function(){})就是让你的dom加载完成之后再解析js的
$(document).ready(function(){})这句话的作用是当页面加载时执行里面的方法,跟$(function(){})是差不多的,如果你是直接写在页面上可以不用加,如果是写在公共的js文件里,就需要加上这段话,不然是不会执行的
8 回答4.8k 阅读✓ 已解决
6 回答3.5k 阅读✓ 已解决
5 回答2.9k 阅读✓ 已解决
5 回答6.4k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
4 回答2.8k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
有两种可能放在外面会失效,总之你监听一个click事件,监听成功的前提是这个元素在当前dom中已被加载
那么比如你的js引用在该元素出现之前就会失效,如
另一种就是可能你在页面加载完成后动态生成了某些元素,也就是说这个元素最初不在html中,此时click监听语句如果比生成语句执行的更早也会失效。
总之$(document).ready(function(){...})内部的语句会确保在dom加载完后执行,一般情况下只要你的js写在/被引用在页面尾部,而且没有动态生成的可能性的话,写在外面也无妨。