Introducing Gimme

It's been quite a while since I've blogged anything significant regarding Javascript. This is largely due to the fact that I've been spending a good bit of my free time working on an open source project I started, called Gimme.

Gimme is a Javascript Library designed to make performing common tasks, not only easier, but down-right trivial.

What does Gimme look like?

Gimme is remarkably easy to use and was purposely designed to be very readable. Take the following snippet.

g('.moveable').addClass('hasBeenMoved').slideToPoint({x: 0, y: 0});
 

This code snippet grabs all elements on the page that have the class "moveable", adds to them, the class "hasBeenMoved," and then slides the elements (in a nice accelerated fashion) to the point (0, 0) on the page. Pretty easy right?

Believe it not, most tasks in Gimme are this easy (or easier).

Get started with Gimme

Your Feedback

Gimme is still very young, but I'd love to get your feedback. Please don't hesitate to try it out and let me know what you think.

2 Responses

  1. Barry Says:

    Just wondering if Gimme handles IE's quirks?

    e.g. does g('#someID') overcome IE (pre 8) issues with case and matching on name attributes?
    http://webbugtrack.blogspot.com/2007/08/bug-152-getelementbyid-returns.html

    likewise, if you try to set the .innerHTML on elements that IE doesn't normally supprt (Select, Table, etc.) will these work?

    Thanks,
    Barry

  2. sstchur Says:

    Barry,

    Excellent questions! I struggled with this, as I wanted the code to remain lightweight and streamlined, but at the same time, I wanted things to work consistently across browsers. Gimme tries to normalize the issue you called out with matching on name attributes.

    It does not however, fix any quirks regarding innerHTML with elements like table or select.

    It does however, do an excellent job (better than most libraries IMO) in normalizing the event model. It forces IE to maintain proper use of the "this" keyword, it make IE understand .target, .relatedTarget, .stopPropagation(), and .preventDefault(), and it ensure that only one element/event/function combination can be wired up at a time (like all other browsers do).

Got something to say?

Please note: Constructive criticism is welcome. Rude or vulgar comments however, are not and will be removed during moderation.