简体   繁体   中英

Why do people use jQuery for basic operations?

I am a JS programmer and I have been experimenting with jQuery a lot but have run into a couple puzzling aspects.

I feel like people use jQuery for much more than necessary. I really just want to know why picking jQuery may be better than using just pure JS.

I know it makes sense for webfx like the animate and fades but for things like adding event listeners it seems just as easy to use

obj = document.getElementByID(_ID_);
obj.addEventListener("mousedown"...);

An example of this is the answer I found on StackOverflow earlier today about performing an action for highlighted text. Get the Highlighted/Selected text

In the example linked in the answer at http://mark.koli.ch/2009/09/use-javascript-and-jquery-to-get-user-selected-text.html

The guy uses the bind function to the document. Why use bind rather than addEventListener. Also with jQuery everything needs to be included in the .ready() method how is this better than (or why choose it over)

document.addEventListener('load', function () { ... }, false);

There are other times I have seen jQuery used that puzzled me, I hope you guys can shine some light on it for me.

People use jQuery because it's simpler, easier, and more powerful, and because it helps them forget about IE.

To answer your specific questions:

  1. Otherwise, you need to call attachEvent for IE.
    Also, jQuery event handling has simpler syntax, and supports live events.

  2. jQuery does not require you to put everything in a ready handler; it's actually better to move your code to the bottom of the page and execute it immediately.
    Unlike document.addEventListener('load', ...) , jQuery's ready event will not wait for images to load.
    Also, it works in IE, and it will still run your code even if the document already loaded.

Well, on() is quite useful because addEventListener() is only supported from Internet Explorer 9 onwards.

The reverse is true for eg the mouseenter and mouseleave events: those are only supported by IE (so far), and jQuery emulates them in other browsers.

我最大的原因是跨浏览器兼容性,尤其是事件处理。

The idea behind jquery is "Write less, do more".

With trivial examples the difference in the amount of code written is small, but as you start to write more complicated stuff the power of jquery becomes apparent.

There's also a lot of cross-browser stuff built into jQuery, which means you have to worry less about browser-specific code.

因为jQuery开发人员比我更聪明,并且经常会实现更有效的算法来完成我正在尝试做的事情。

I have more confidence in jQuery being platform-independent than I do with mere JavaScript. For that reason, I'm tempted to use jQuery as much as I can. And I think jQuery is good and stable enough of a platform to abstract away some of the browser-specific complications that way.

因为它是交叉兼容的并得到很好的支持(考虑XHR请求)......但是在某些项目中,由于缺乏“资产”方法,我最好使用MooTools代替JQuery。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM