我是一名JS程序员,我一直在尝试使用jQuery,但遇到了一些令人费解的问题。
我觉得人们使用jQuery远远超过必要。我真的只是想知道为什么选择jQuery可能比使用纯JS更好。
我知道webfx就像动画和淡化一样有意义但是对于像添加事件监听器这样的东西它似乎同样容易使用
obj = document.getElementByID(_ID_);
obj.addEventListener("mousedown"...);
这方面的一个例子是我今天早些时候在StackOverflow上找到的关于为突出显示的文本执行操作的答案。 Get the Highlighted/Selected text
在http://mark.koli.ch/2009/09/use-javascript-and-jquery-to-get-user-selected-text.html答案中链接的示例中
该人使用绑定功能到文档。为什么使用bind而不是addEventListener。另外,对于jQuery,一切都需要包含在.ready()方法中,这比(或者为什么选择它)更好
document.addEventListener('load', function () { ... }, false);
还有一次我看到jQuery使用这让我很困惑,我希望你们能为我发光一些。
人们使用jQuery因为它更简单,更容易,更强大,并且因为它可以帮助他们忘记IE。
回答您的具体问题:
attachEvent
。
此外,jQuery事件处理具有更简单的语法,并支持实时事件。ready
处理程序中;实际上,将代码移动到页面底部并立即执行它会更好。
与document.addEventListener('load', ...)
不同,jQuery的ready
事件不会等待图像加载。
此外,它在IE中工作,即使已加载文档,它仍将运行您的代码。好吧,on()非常有用,因为addEventListener()仅从Internet Explorer 9开始支持。
反之亦然,例如mouseenter和mouseleave事件:这些事件仅由IE支持(到目前为止),jQuery在其他浏览器中模拟它们。
我最大的原因是跨浏览器兼容性,尤其是事件处理。
jquery背后的想法是“少写,多做”。
使用简单的示例,编写的代码量的差异很小,但是当您开始编写更复杂的东西时,jquery的功能变得明显。
jQuery中还内置了许多跨浏览器的东西,这意味着你不必担心特定于浏览器的代码。
因为jQuery开发人员比我更聪明,并且经常会实现更有效的算法来完成我正在尝试做的事情。
我对jQuery独立于平台的信心比单纯JavaScript更有信心。出于这个原因,我很想尽可能多地使用jQuery。而且我认为jQuery是一个很好且稳定的平台,可以通过这种方式抽象出一些特定于浏览器的复杂问题。
因为它是交叉兼容的并得到很好的支持(想想XHR请求)......但是在某些项目中,由于缺乏“资产”方法,我最好使用MooTools代替JQuery。