(function(){alert("hei");})();
$(function(){alert("hei");})();
$(document).ready(function(){alert("hei");});
蓝色比红色有什么好处?
蓝色可以添加事件,是jquery的方法,红色不行,这样理解对吗?
$(function(){alert("hei");})();
$(document).ready(function(){alert("hei");});
蓝色比红色有什么好处?
蓝色可以添加事件,是jquery的方法,红色不行,这样理解对吗?
jquery使用 $()来获取对象。
有意思,能深入么?
// code to execute when the DOM is ready
});
是
$(document).ready(callbac)的缩写。
这样的话,当你浏览一个运用了jQuery的网站,一打开页面就会看到jQuery效果,没有任何延迟。
你可以这么理解:
如果你有个页面要加载的东西太多了,可能导致很久才看到js的效果。
$(document).ready()函数里面的内容将会在整个页面其他内容下载之前预先加载。
abc
《body》
《/body》
<script>
ready()
《html》
in u opinion =>
<script>
ready()
《html》
abc
《body》
《/body》《html》
蓝色的
$(function(){alert("hei");})();
$(document).ready(function(){alert("hei");});
都是jquery类库封装的方法。其实$就相当于jQuery,你完全可以这样写jQuery(function(){alert("hei");})();(function(){alert("hei");})();与
$(function(){alert("hei");})(); 执行上基本上没什么差别,都相当于你声明了一个匿名函数并立即执行。这样做是为了简洁的定义一个匿名函数,然后执行.当初始化时,如果要无条件执行一个函数,如果先定义,然后再调用,首先,函数的名称没有必要,只是调用时用得到.其次,写起来比较麻烦,看起来也不简捷.然后
$(document).ready(function(){alert("hei");}); ,正如1楼那位仁兄所说,这个作用是当页面的DOM模型加载完后执行指定的匿名函数,这时,页面所有的DOM元素都可以访问了。
有下面这样一个例子:
<html>
<head>
<script>
(function(){document.getElementById('text1').value = '春哥'})(); //浏览器从上到下解析html,这是因为text1这个标签还没有被解析,所有这里会提示undefined。
$(document).ready(document.getElementById('text2').value = '曾哥'});//因为所有的dom元素都加载完了才执行这个函数,所以这里能正常执行
</script>
</head>
<body>
<input id="text1" type=text value=""/>
<input id="text2" type=text value=""/>
</body>
</html>
1
$(document).ready(document.getElementById('text2').value = '曾哥'});//改成
$(document).ready(function(){document.getElementById('text2').value = '曾哥'});
2
关于$(function(){alert("hei");})();9楼说的是正确的。
蓝色比红色有什么好处?蓝色的是 jQ 的写法,意思是 在 document 对象 加载后执行的函数句柄, 这里的$(function(){}) 等同于 $(document).ready(function(){});jQ 的 $() 优势 在于 dom 对象已经存在 ,但不等待dom对象加载结束 就会执行。
红色是标准的 EcmaScript 中匿名函数的写法之前你也问过的, 它会声明后 立即执行