学了好几个加载事件,有点犯迷糊,求教高手一下..

这俩都是jQuery是吧?
请问这俩什么区别?
他们的原型是什么?
$(document).ready(function(){
})

$(function(){
})
请问下面这俩是一样的,只是一个是JavaScript,一个是 jQuery 对吗?
window.onload = functionName

$(window).onload(FunctionName)
这仨哪里的区别?
$("*").on("keydown", TanQiJian)
$(document).on("keydown", TanQiJian)
$(window).on("keydown", TanQiJian)
阅读 2.7k
3 个回答

jQuery 的文档 提到,

All three of the following syntaxes are equivalent:

  • $( document ).ready( handler )

  • $().ready( handler ) (this is not recommended)

  • $( handler )

所以第1个问题,没区别

第2个问题。有者是用的浏览器自己实现的事件方式。后者是 jQuery 封装的事件方式,jQuery 的实现方式是对浏览器实现方式的封装,但在使用上,还是没啥区别的。不过用 jQuery 封装的事件方式,支持 jQuery 的链式调用,或者其它一些 jQuery 特性。

第3个问题。应用地不同对象的事件申明肯定是不一样的,第1个是对所有当前已经存在的元素绑定了 keydown 事件,第二个是对 document 绑定事件,第三个是对 window 绑定事件。由于事件的冒泡机制,如果没有在事件处理函数中中止冒泡,最终事件都会冒到 document,再冒到 window,按顺便分别触发他们的事情

这俩都是jQuery!
这俩没区别,一个是简写而已
$(document).ready(function(){
})

$(function(){
})
下面这俩是一样的,只是一个是JavaScript,一个是 jQuery
window.onload = functionName

$(window).onload(FunctionName)
这三的区别有点大了,选择的对象不同,事件绑定的对象不同,伴随着性能不一样;
$("*").on("keydown", TanQiJian)
$(document).on("keydown", TanQiJian)
$(window).on("keydown", TanQiJian)

多看點基礎吧。。。像這樣的問題,都不想回答

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题