日期:2014-05-17  浏览次数:20499 次

关于$(document).ready(function(){})
var $cr = $("#cr");  //jQuery对象
$cr.click(function(){
if($cr.is(":checked")){ //jQuery方式判断
alert("感谢你的支持!你可以继续操作!");
}
})


未放入 $(document).ready(function(){})  为什么会无效!

------解决方案--------------------
http://www.jb51.net/article/21628.htm
------解决方案--------------------
根据你的页面加载顺序,你在执行js的时候html还没加载

而$(document).ready()是DOM结构绘制完毕后就执行,不必考虑顺序问题。
------解决方案--------------------
你想要一个事件运行在你的页面上,你必须在$(document).ready()里调用这个事件。所有包括在$(document).ready()里面的元素或事件都将会在DOM完成加载之后立即加载,并且在页面内容加载之前。 
------解决方案--------------------
执行到你的代码时$("#cr") 找不到啊。类似的例子还有,你用$(".class").click给class绑定了一个事件,之后如果在页面里面你动态的给一个样式添加class类属性,他也是不起作用的。
------解决方案--------------------
引用:
根据你的页面加载顺序,你在执行js的时候html还没加载

而$(document).ready()是DOM结构绘制完毕后就执行,不必考虑顺序问题。

+1奥
------解决方案--------------------
1、 $("#cr"); 其实是一个函数,函数名称是 $ 
2、这个函数是在jQuery.js 里面实现的。
3、要想使用这个函数,必须确保 jQuery.js 完全加载,如果还没有加载呢,就没有办法执行 $() 
4、$(document).ready()  是在页面的html(dom)加载完毕,并且 jQuery.js 也加载完毕之后才会被执行。

5、$(document).ready() 虽然也是在 jQuery.js 里定义的,但是他比较特殊。

6、最安全的写法 
windown.onload = function (){
//你的代码
}

这个是在页面(包括所有的js和css还有图片等各种资源)完全加载完毕之后执行。

------解决方案--------------------
1.这跟DOM加载的顺序是有关系的,当你不加的时候浏览器按照HTML代码顺序进行解释,也就是说当浏览器读到$("#cr")时,有可能id为cr的元素有可能还没有装载,所以需要加入 $(document).ready(function(){}),如果你稍微看看一下这段代码 它其实想表达的意思很简单,当document准备好了之后再执行function.
2.有一种方式是不需要加的,就是当你把Javascript写到HMTL底部的时候.也就是浏览器已经把document全部装载好了之后.