Skip to main content

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. jQuery: get the highlighted 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.



Source: Tips4all

Comments

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

    To answer your specific questions:


    Otherwise, you need to call attachEvent for IE.
    Also, jQuery event handling has simpler syntax, and supports live events.
    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.

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

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

    ReplyDelete
  3. The biggest reason for me is cross browser compatibility, especially with event handling.

    ReplyDelete
  4. 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.

    ReplyDelete
  5. Because the jQuery developers are way smarter than I am, and will often implement a more efficient algorithm to do what I'm trying to do.

    ReplyDelete
  6. Here is why I would do things like that..

    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.

    ReplyDelete
  7. cause it's Cross-Compatible and well supported (think about XHR requests)... but in some project I'd find better to use MooTools instead of JQuery in cause of a lack of "assets" method.

    ReplyDelete

Post a Comment

Popular posts from this blog

[韓日関係] 首相含む大幅な内閣改造の可能性…早ければ来月10日ごろ=韓国

div not scrolling properly with slimScroll plugin

I am using the slimScroll plugin for jQuery by Piotr Rochala Which is a great plugin for nice scrollbars on most browsers but I am stuck because I am using it for a chat box and whenever the user appends new text to the boxit does scroll using the .scrollTop() method however the plugin's scrollbar doesnt scroll with it and when the user wants to look though the chat history it will start scrolling from near the top. I have made a quick demo of my situation http://jsfiddle.net/DY9CT/2/ Does anyone know how to solve this problem?

Why does this javascript based printing cause Safari to refresh the page?

The page I am working on has a javascript function executed to print parts of the page. For some reason, printing in Safari, causes the window to somehow update. I say somehow, because it does not really refresh as in reload the page, but rather it starts the "rendering" of the page from start, i.e. scroll to top, flash animations start from 0, and so forth. The effect is reproduced by this fiddle: http://jsfiddle.net/fYmnB/ Clicking the print button and finishing or cancelling a print in Safari causes the screen to "go white" for a sec, which in my real website manifests itself as something "like" a reload. While running print button with, let's say, Firefox, just opens and closes the print dialogue without affecting the fiddle page in any way. Is there something with my way of calling the browsers print method that causes this, or how can it be explained - and preferably, avoided? P.S.: On my real site the same occurs with Chrome. In the ex