This is a message.

Version History A full list of bug fixes and new features

October 08, 2009 Version 1.1.2

The event object has been extended to have a lot more information. Here is an example:

$("#scroll").scrollable().onSeek(function(event, index) {
// mouse position at the time when the event was fired
var x = event.pageX;
var y = event.pageY;
// whether CTRL, ALT, SHIFT or ESC was being pressed
var alt = event.altKey,
ctrl = event.ctrlKey,
shift = event.shiftMey,
esc = event.metaKey;

// the original triggering element
var element = e.originalTarget || e.srcElement;


June 07, 2009: Version 1.1.1.

In jQuery Tools version 1.1.1. the event processing is standardized according to the W3C standards. This is good news for advanced scripters - the users who want to extend the default behaviour of the tools and for the jQuery Tools plugin developers. Here is what you can do with it:

  1. Add and remove your existing callback functions.
  2. Specify a name for your callbacks and later remove only those named callbacks.
  3. Specify a single callback for multiple event types.
  4. If you have multiple callbacks of the same type you can prevent the rest of the callbacks from being executed.

You can read the details of the new event model in the User's Manual.

September 11 / 2009: Version 1.1.0.

A new global variable $.tools which has following kind of tree structure:

Global configuration

This shows the available tools, effects, plugins and their versions and global configurations

June 03 / 2009 Version 1.0.0. (Initial release)

Former well known jQuery plugins:

  1. jquery.scrollable
  2. jquery.overlay
  3. jquery.expose
  4. flashembed

Are now packaged into single library called with a new prefix and version number as follows:

  1. tools.scrollable
  2. tools.overlay
  3. tools.expose
  4. tools.flashembed

The library also contains the following new tools:

  1. tools.tabs
  2. tools.tooltip

making the library complete.

Common changes to all tools

Here is a list of the changes that are common for all tools:

  • All tools are now minified with Yahoo's YUICompressor which is designed to be 100% safe and yield a higher compression ratio than most other tools. JSLint is still used for verifying the code quality.
  • plugin architecture - which essentially means that you are allowed to assign multiple callback methods for same event. Look for more information here about writing plugins.
  • The getVersion method has been removed and now you get access to the individual tool version through the global $.tools.version object. For example, $.tools.version.tabs, will return the version for the tabs tool.
  • The alert configuration variable has been removed. Alert boxes are no longer used when an exception is thrown in a custom callback method. Errors are printed in the browser's JavaScript console or Firebug.
  • A new api flag that you use to return the tools programming API when the tool is constructed. Look for more information here about accessing the API.

1.1.2. October 08 / 2009

  • new onStart callback function which is triggered just before the items start scrolling. This happens between onBeforeSeek and onBeforeSeek events. All API methods rely on the fact that the scollable is already on its target position. By returning false inside this function you can prevent the disabling of the navigational elements.
  • Ability to change the speed inside onBeforeSeek event. Thanks blacktrash
  • index argument is supplied for the callback functions that are given to seeking functions as an argument
  • next and nextPage buttons are now disabled when item count is less than the scrollable size thanks sb3den

navigator plugin

  • new configuration variable idPrefix which generates ID- attribute for each item so that they can be uniquely styled with CSS. For example value "foo" generated ID:s "foo0", "foo1", "foo2" and so on.
  • active class is assigned upon the new onStart event so that the navigator behaviour is more visually pleasing

1.1.1. September 17 / 2009

  • fixed a bug where the reload() call broke an existing keyboard navigation feature
  • added the getClickIndex() method to the API
  • fixed a bug where the onBeforeSeek and onSeek callbacks were called although the seeking position did not change. this won't happen anymore.
  • brought back the loop variable

1.1.0. September 11 / 2009

  • possible to seek with zero (0) speed
  • possibility to scroll with one sized scrollable by clicking. the direction changes whe beginning or end is reached or navigational buttons are used in which case the scrolling goes to the same direction as the latest seek.
  • new method getNaviButtons
  • new event: onReload
  • navigational elements can be placed anywhere on the page. If you have multiple scrollables on your page you should read about multiple scrollables with navigational element
  • keyboard arrow keys now advance the same amount as the page size. can be changed with a new configuration option: keyboardSteps
  • keyboard functionality can now be dynamically disabled/enabled by setting getConf().keyboard flag and calling reload() after that. See this forum thread for details.
  • fixed a bug where you could not seek to an item who's index is higher than the index of the first item of the last page. this caused a quite lengthy discussion found here
  • new "item" configuration property that lets you filter only some of the child elements as scrollable items
  • if clickable property is enabled then A- tags inside scrollable won't scroll forward
  • new keyboard: 'static' configuration option makes the scrollable instance always controllable by the keyboard arrow keys. The scrollable does not have to be actively used.
  • new focus() method: after this call the keyboard arrow keys will control this particular scrollable instance. You can take a look at A complete scrollable navigational system demo which takes advantage of the "static" value and the focus() method.
  • onSeek callback method is truly triggered *after* the scrolling animation.

New plugins for Scrollable

mousewheel plugin is based on Three Dub Media's wheel plugin which is a smaller, simplified interpretation of Brandon Aaron's special event "Mouse Wheel Extension"

1.0.5 June 12 / 2009

  • Using a zero (0) on the scrolling animation caused to use the default speed (400ms). Now zero speed is possible.
  • When autoScroll was enabled and it was programmatically paused this caused multiple timers to be created. this was spotted in this thread. Autoscroll is now concidered as a depcreated feature and it will be replaced by an "autoscroll plguin" for scrollable scrollable 1.2.

1.0.4 June 08 / 2009

  • Updated the graphics package. vertical scrollable has a new "skin"
  • Fixed a bug where the Alt-left and Alt-right browser keystrokes fails to navigate backwards and forwards between pages. Now when the Alt or Control keys are pressed, the arrow keypresses are ignored. See details from this forum thread.

1.0.3 June 03 / 2009

  • This tool is now part of the jQuery Tools UI library and its prefix was changed from jquery.scrollable to tools.scrollable
  • All changes that are common to each tool
  • Navigational elements can be other than siblings. The problem was spotted from this forum thread.
  • Support for varying width items in scrollable. Thanks to "rpitting" who posted a solution
  • Next and prev actions now work on two sized scrollables
  • Automatic scrolling can be stopped at runtime by calling: getConf().interval = 0. See this forum thread.
  • Clicking on the last items was working inconsistently. Thanks to "xeshm" who suggested a solution.
  • The arrow keys are now working in IE and Chrome

1.0.2 Feb 24, 2009

  • Fixed a minor bug where getIndex() API call method returned the index position that was present before seeking occurred
  • Updated autoscroll demo to have custom animation when seeking occurs. Now we have an example of scrollable using callback methods.

1.0.1 Jan 26, 2009

  • getItems() did not return correct items after new items has being added / removed
  • mousewheel works similarly in Opera too
  • checked and tested that everything works good with jquery 1.3.1
  • getVersion() returns an array [1, 0, 1] instead of string "1.0.1"

1.0.0 Jan 21, 2009

  • now it's possible to add/remove items from scrollable using standard jQuery methods. see demo
  • automatic action generation for "next page" and "prev page". see demo
  • interval option to automatically step through elements in specified intervals. see demo
  • next/prev links can now be hidden (or styled) when they are not active using disabledClass configuration option
  • hoverClass for styling elements upon mouseover event
  • new event handler onBeforeSeek which is triggered before seeking occurs. returning false here cancels seeking
  • a whole new API for interacting with scrollable.
  • getConf() method that you can read and modify for making the tool behave differently at runtime
  • easing configuration option for changing how scrolling animation behaves. two options "swing" and "linear"
  • all seeking funktions in an api accept optional callback function that is triggered when seeking finished. this happens after onBeforeSeek and before onSeek events.
  • keyboard option to enable/disable navigation with arrow keys
  • error handling on callback functions
  • alert configuration option to enable/disable alert boxes when you have erroneous code in your callbacks
  • removed the auto generated wrapper element DIV.__scrollable so that there are no undocumented surprises
  • better code structure (public methods, private members, source code is easy to understand)

0.13 Nov 5

  • automatically generated after scrolling elements. makes things work better and less CSS hacking needed.
  • seekTo() couldn't reach last element. now it can

0.12 Oct 31, 2008

  • nextPage, prevPage not working
  • fixed bug in onSeek this variable which now points to the status object
  • much better code structure
  • passes jslint
  • clickable option
  • fixed missing keyboard actions
  • better API. "unified" api is now deprecated
  • next, prev, nextPage, prevPage now stops correctly
  • loop mode, default false
  • navigator tries first to find first A tags

0.10 May 28, 2008

Initial public release. Published to jQuery plugins repository.

1.1.2. October 08 / 2009

  • if overlayed element is not found a proper error message is thrown: "Could not find Overlay: #my-overlay2"
  • better error message upon unexistent effect: 'Overlay: cannot find effect : "apple"
  • new onStart callback which is triggered just before the overlay starts appearing in an animated way. This happens between onBeforeLoad and onLoad events. The overlay has already been positioned to the place where it start's animating. This callback is not triggered if the loading action has been cancelled in onBeforeLoad.

1.1.1. September 17 / 2009

  • brought back the support for top: 'center'
  • fixed a bug where the file input field was disabled when an overlay was being loaded programmatically. thanks ncooley
  • fixed a bug when an overlay & expose were closed and the expose effect disappeared while the overlay stayed open. thanks Glazz
  • ability to close the overlay immediately after being opened. The onLoad event is not fired unless the overlay is truly opened.

1.1.0. September 11 / 2009

  • A whole new effect framework with two effects "default" and "apple"
  • the Apple effect has to be included separately before it can be used.
  • New effects can be added with $.tools.overlay.addEffect method.
  • ability to assign overlay function for elements that are added on the page dynamically.
  • is unbind when there is no overlay available
  • escape button is not tracked when there is no overlay available
  • removed non-standard "overlay" attribute from the overlayed element
  • new method: getClosers() which returns all the elements that inside overlay that closes it
  • getBackgroundImage() method is removed (because it was Apple effect specific)
  • new property: closeOnEsc that can be used to disable overlay closing with ESC key
  • fixed a bug when multiple triggers target the same overlay: thanks @adamlogic in Twitter
  • overlays can now trigger additional overlays (with different effects, expose settings, etc). here is a demo about an overlay opening another overlay.
  • finish configuration object has now been moved to configuration's root level. this may break old installations.
  • getOverlay() method. The previous getContent() method is now deprecated and will be removed in Tools 1.2.0.
  • when closeOnClick and closeOnEsc properties are used together with the mask effect then those properties are populated to the Expose tool as well
  • If you supply a value to the close property, the overlay does not auto-generate a close button
  • top configuration variable now accepts percentage values so that it works better in different kind of screen resolitions. By default this is 10%

1.0.4 June 12 / 2009

  • When being used with expose property the close action sometimes fails. now it's fixed

1.0.3 June 08 / 2009

The load method can now be called upon $(document).ready(). See the details in this forum thread.

1.0.2 June 03 / 2009

  • This tool is now part of the jQuery Tools UI library and prefix was changed from jquery.overlay to tools.overlay
  • All changes that are common to each tool
  • When overlay is closed the animation shrinks visually towards the trigger element
  • mask configuration variable for easy configuration of the exposing effect
  • Fixed a bug where in some versions of Opera overlay was positioned out of the screen
  • The expose() method has been removed; it was previously deprecated
  • There is now a closeSpeed flag that you can use to tweak the closing animation time
  • The onClose callback event was totally missing
  • The escape button was not working properly in IE.
  • Some areas on the overlayed element caused the overlay to close when clicked on IE
  • overlay now works with jQuery 1.2.x & Safari. Look at this forum thread.
  • When overlay is opened, the default finish top position is now 100px from the top edge instead of being vertically centered. this improves the readability.

1.0.1 Feb 16 2009

  • fixed a bug where overlay did not work when there was multiple triggers for same overlay
  • does not alert when background image is missing - makes a throw statement instead

1.0.0 Feb 16 2009

  • ability to place multiple simultaneous overlays on the same page
  • toally new JavaScript API
  • ability to trigger overlay programmatically
  • ability to define where growing animation starts and/or ends
  • exeptions are caught on user defined callback functions
  • overlay's background images are preloaded into browsers cache by default. can be disabled from configuration
  • each callback now receives this API as their this- variable (as proper programs should). note this may break your previous installation.
  • much cleaner source code. easier to understand for newcomers
  • a new overlay demo section

0.14 Nov 6

Fixed a bug that caused Opera not to show background images.

0.13 Nov 5

  • new callback function: onBeforeLoad. allows you to cancel loading when false is returned
  • changed existing callback names to something more descriptive: now they are onLoad and onClose
  • made overlay work so that it can work in co-operation with mask tool. example of such co-operation can be found here.

0.12 Oct 31, 2008

  • click outside overlay closes it
  • closeOnClick configuration option, by default this is true

1.0.5. October 08 / 2009

  • Optional event object can be given as argument to load(), close() functions and it will be handled to the callback functions. A convenient way to pass data for the callbacks.

1.0.4. September 11 / 2009

  • A complex function for calculating the mask size properly for every browser / version combination is (hopefully) completed. There are many complexities that are mainly involved with the fact that is the scrollbar visible or not. IE is of course the hardest to get in shape. Again It's time to Unite.
  • A new method fit() which will resize the mask to fill the whole space. This is needed if you grow the document size yourself. Look at this demo for an example of this method.
  • if overlayed elements have originally larger zIndex than the expose mask it is being used

1.0.3 June 12 / 2009

  • Now works with elements whose position is static (fixed), see forum post.

1.0.2 June 03 / 2009

  • this tool is now part of the jQuery Tools UI library and prefix was changed from jquery.expose to tools.expose
  • All changes that are common to each tool
  • the biggest rewrite for the tools. most notably this tool is not a "singleton" anymore - meaning that you can now initialize multiple exposes on the page with different settings and load/close their exposing state separately. this is on the same line with the functionality with other tools.
  • different mask settings are possible for different elements
  • lazy loading of the effect. you now initialize the expose beforehand and later call load
  • takes all the available room on the browser window (no inconsistency on browsers)
  • no additional scrollbars available when exposing effect is in place
  • if window is resized the mask size is adjusted accordingly: look for following forum thread.
  • in this version the maskId variable is null by default. this may break other installations if they have tweaked the #exposeMask element with custom CSS settings. this can be fixed by setting maskId back to "exposeMask".
  • new default color for the mask: #456
  • closeOnEsc configuration variable

Changes to old installations

This release will break old installations. Here is how things were configured in previous version.

// expose elements
// close exposing


In this version the same thing is achieved in following manner

// expose elements
var api = $("div.myElements").expose({api: true}).load();
// close exposing


This is because now there can be multiple exposes on the page simultaneously and the behaviour is on the line with other tools. If you are exposing overlays you can now use the mask configuration variable which will make your life much easier.

1.0.1 Apr 15 2009

Z-index was not restored to their original value when exposing was closed.

1.0.0 Feb 16 2009

  • totally rewritten source code and a new JavaScript API
  • ability to trigger expose programmatically
  • new callback functions: onBeforeLoad, onLoad abd onBeforeClose
  • inside every callback function this- varialbe is a pointer to the API
  • $.expose is a pointer to the currently or previously active expose API
  • new configuration options: maskId, zIndex, loadSpeed, closeSpeed and alert
  • a new expose demo section

0.13 Nov 5

  • onBlur name changed to onClose - consistent with other tools
  • made expose work so that it can work in co-operation with overlay tool. example of such co-operation can be found here.
  • absolutely positioned elements were re-positioned relatively. this no longer happens.

0.12 Oct 31, 2008

  • unexpose function
  • onBlur option

1.0.4. October 08 / 2009

  • only performs an initial click() call when initialIndex is a positive number. possibility to initialize tabs so that all tabs are hidden
  • fixed a bug where getCurrentPane() did not return anything althought a proper initialIndex was specified.

1.0.3. September 17 / 2009

  • panes can be specified as a jQuery object. See this forum thread.
  • tabs.history now works with the tabs initialIndex option
  • tabs.slideshow now stops working after the first iteration when autoplay is enabled
  • tabs.slideshow added the onBeforePlay, onPlay, onBeforePause, onPause events
  • tabs.history no more error messages on IE6 when being used together with the HTTPS protocol. See this forum thread
  • 1.0.2. September 11 / 2009

    • new built-in effect: "ajax"
    • a new configuration property fadeOutSpeed for the "fade" effect for performing "crossfades"
    • new rotate configuration property for cycling through the tabs in a circular manner
    • history option is now implemented as a plugin. It has changed to $("..").tabs().history();. This new plugin handles history even better. No more unnessessary IFRAME hacks for IE8.
    • $.tools.addTabEffect() is no longer used for adding new custom effects. Use $.tools.tabs.addEffect() instead
    • fixed a bug where the last tab was opened if there was an unidentified hash value on the URL
    • onClick event is called after the effect has *really* finished its job. If the effect has animations the event is called after the animation has been finished. If you have made your own effects for tabs the implementation has changed a bit. Look for the done argument.
    • The ability to instantiate multiple tabs or accordions with a single call

    New plugins for Tabs

    1.0.1 June 12 / 2009

    • Now works with elements whose position is static (fixed), see forum post.

    1.0.0 June 03 / 2009

    Initial release. This tool is now part of the jQuery Tools UI library. Published to jQuery plugins repository. Look for the tabs documentation for the features.

1.1.2. Oct 08 / 2009

  • you can specify whether the tooltip closes upon mouseout or not. In fact you can configure the opening and closing event for the tooltip element. this happens with the new effects.tooltip configuration option.
  • tooltip works flawlessly with animated effects when being quickly moved from trigger to another. this was especially present in the form demo which now works smoothly.
  • fixed "black box" PNG bug in toggle effect for Internet Explorer
  • fixed a bug where this.getTrigger() may return a the tooltip element inside callbacks when the tooltip was being hidden by moving the mouse out of the tooltip.
  • when an effect is not found a proper error message is thrown: Nonexistent effect "myeffect"

1.1.1. September 17 / 2009

  • tooltip ability to change the tooltip dynamically by setting:"title", title). See this forum thread
  • tooltip by default the tooltip position is now determined by using the offset() method of jQuery. This gives better results when the trigger is positioned inside relatively or absolutely positioned elements. See this and this forum threads. Thanks "bericum".
  • tooltip the relative configuration property can be used to switch between positioning schemes. Using false positions the tooltip relative to the document and using true positions the tooltip relative to the parent element. you should rarely need to touch this property.
  • tooltip when calling the hide API method the delay configuration variable is ignored and the tip will be hidden immediately. thanks Aramaki.

1.1.0. September 11 / 2009

  • If opacity is set to 1 it is not set at all. This caused "black box" problems in IE
  • new lazy configuration variable which will make the pages load faster when there are many tooltips. This is enabled by default when there is more than 20 tooltips on the page. For the record, 21 triggers this will cause 2336 calls and takes 169.144ms with fast computers.
  • trigger's title attribute can be used as the tooltip. This requires that the tip configuration variable is given.
  • onBeforeShow is now fed with position argument this usable for plugin developers
  • if delay is set to 0 it is now truly 0 (as opposed to a 1 millisecond setTimeout call);
  • new configuration option: predelay for enabling delays before the tooltip is shown
  • new effects are no longer added with $.tools.addTipEffect() but with $.tools.tooltip.addEffect() instead
  • a much simpler syntax for the position parameter. It can now be given as a string such as "top center". The old syntax, ['top', 'center'], is still supported
  • onHide and onShow events are now called as the very last event after the possible animation
  • default effect "slideup" is now replaced with a highly configurable "slide" effect
  • new configuration properties for the "slide" effect: direction specifies the sliding direction and bounce specifies whether the sliding comes back to the opposite direction from the original direction.
  • new cancelDefault configuration property for removing the browser's default tooltip. The original title attribute can still be retrieved with"title")
  • when tooltip is used together with form fields the tooltip will not be hidden when mouse leaves it
  • A completely new event management system where you can fully control when the tooltip will be shown or hidden. Thanks to forum posts: this and this for the idea.

Dynamic plugin 1.0.0

A new Tooltip plugin for automatically repositioing the tooltip based on the document's scrolling position. The tooltip will always stay visible. See the details of here.

1.0.2 June 12 / 2009

  • fixed a bug where trigger could change when it had child elements - such as table. see forum thread
  • tooltip now closes when mouse leaves the tip while it's still being animated. see forum thread
  • new built-in effect: "fade" with two configuration variables: fadeInSpeed, fadeOutSpeed.

1.0.1 June 08 / 2009

  • Tooltip is initialized differently. Instead of selecting the tooltip we are selecting the triggering element. Look for minimal setup for tooltip for the details.
  • tooltips now work correclty on textareas. see details from this forum thread.
  • tooltip can be positioned next to the trigger element's parent too. this is sometimes needed in forms for example. the input is nested inside a label element and the tooltip is placed next to the label. See details from this forum thread.

1.0.0 June 03 / 2009

Initial release. This tool is now part of the jQuery Tools UI library. Published to jQuery plugins repository. Look for the tooltip documentation for the features.

1.0.4. Setptember 11 / 2009

New configuration property cachebusting which will force the SWF file to be loaded from the cache no matter what the expiry headers are. This is achieved by appending a random query string variable on the request URL. This property is false by default. Thanks to the following forum thread.

1.0.3 June 03 / 2009

  • the file is now renamed from flashembed to tools.flashembed. however this tool is not part of the official jQuery Tools library but can be bundled inside a custom tool combination
  • does not support all common tool features. only api configuration variable support was added.
  • fixed a bug where a link to Flash download page was not working when the container element was also a link (anchor tag). this only occurred for users with IE and without any Flash installation.

1.0.2 Apr 15 2009

On some occasions IE will not load the player from the memory. A random query string is automatically added after the SWF url to prevent this from happeing.

1.0.1 February 24, 2009

Fixed a bug on IE when embedding is done inside the A tag and an unsupported Flash version was detected. It seems that IE will throw a JavaScript error when additional A tag is placed inside existing A tag by scripting.

1.0.0 February 4, 2009

This version can now be used to embed all kinds of Flash objects and some problems encountered on the previous release has been resolved.

A large collection of flashembed demos showing you the flexibility of this tool. demos include: basics, jquery usage, handling old versions, layering HTML on top of Flash.

flashembed generates standards-based OBJECT tag and EMBED tag is now history. more information

0.34 Nov 20, 2008

  • new static functions: asString, getHTML, and getFullHTML
  • dual lisencing under MIT and GPL 3.0

0.33 Oct 31, 2008

  • Values such as "50%" are supplied to Flash as "50pct". This is because Flash cannot handle %- mark correclty
  • much, much better code structure
  • new static function flashembed.domReady (uses jQuery method if nessessary)

0.31 July 220, 2008

  • flashembed() can insert flash into page even thougt DOM has not been loaded yet. it incorporates an internal DOM checking utility. this way nested OBJECT's API is not returned and so it's designed to be used in simple embedding.
  • Fixed a bug on Safari when no flashvars was given.
  • Fixed a bug on IE where an id is required for object tag in order to access its public API.
  • Lazy Loading was totally removed from this release - it is no longer marked as deprecated.

0.29 June 10, 2008

  • source code now passes JSLint:
  • updated documentation. it should be now (even) more readable
  • packed, minified and gzipped versions are now available
  • second argument can be passed as string when it is itepreted as "src" option. this makes the tool more readable
  • lazy loading was removed because it should be implemetned outside this tool for making more modularized code

0.27 May 28, 2008

  • Fixes a minor bug that occurred with Flash 10 beta.

0.26 Apr 12, 2008

  • Added new flexible API access. After you have placed your Flash object to the page you'll instantly have the handle to the Flash object's programming interface (API) if such is profided.
  • Fixed a bug that occurred in IE 7 / XP

0.25 Apr 1, 2008

  • Lazy loading - so that your flash objects won't be loaded until certain event, usually click event
  • jQuery dependency is removed because this project is used in many different settings. of course jQuery is still strongly supported due to its excellent selector syntax
  • Alternate content via custom function

0.10 Mar 11, 2008

Initial public release. Posted on jQuery repository. A glory has begun.