我是一名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的使用令我感到困惑,我希望你们能为我发光一点。
答案 0 :(得分:50)
人们使用jQuery因为它更简单,更容易,更强大,并且因为它可以帮助他们忘记IE。
回答您的具体问题:
否则,您需要为IE调用attachEvent
此外,jQuery事件处理具有更简单的语法,并支持实时事件。
jQuery不要求你把所有东西放在ready
处理程序中;实际上,将代码移到页面底部并立即执行它会更好
与document.addEventListener('load', ...)
不同,jQuery的ready
事件不会等待图片加载
此外,它在IE中工作,即使文档已经加载,它仍将运行您的代码。
答案 1 :(得分:27)
好吧,on()非常有用,因为addEventListener()仅从Internet Explorer 9开始支持。
反之亦然mouseenter和mouseleave事件:IE仅支持这些事件(到目前为止),jQuery在其他浏览器中模拟它们。
答案 2 :(得分:14)
我最大的原因是跨浏览器兼容性,尤其是事件处理。
答案 3 :(得分:6)
jquery背后的想法是“少写,做多”。
使用简单的例子,编写的代码量的差异很小,但是当你开始编写更复杂的东西时,jquery的功能变得明显。
jQuery中还内置了很多跨浏览器的东西,这意味着你不必担心特定于浏览器的代码。
答案 4 :(得分:3)
因为jQuery开发人员比我更聪明,并且经常会实现更有效的算法来完成我正在尝试做的事情。
答案 5 :(得分:2)
我对jQuery独立于平台的信心比仅仅使用JavaScript更有信心。出于这个原因,我很想尽可能多地使用jQuery。我认为jQuery是一个很好且稳定的平台,可以通过这种方式抽象出一些特定于浏览器的复杂问题。
答案 6 :(得分:1)
因为它是交叉兼容的并得到很好的支持(想想XHR请求)......但在某些项目中,由于缺乏“资产”方法,我最好使用MooTools而不是JQuery。