diff --git a/src/event/event.js b/src/event/event.js index 4a633167..a4cba96c 100644 --- a/src/event/event.js +++ b/src/event/event.js @@ -1,3 +1,100 @@ +/** + * Describes the nature of the event. + * + * Native by all browsers. + * + * @example $("a").click(function(event) { + * alert(event.type); + * }); + * @result "click" + * + * @property + * @name event.type + * @type String + * @cat Events + */ + +/** + * Contains the DOM element that issued the event. This can be + * the element that registered for the event or a child of it. + * + * Fixed where necessary (IE, Safari). + * + * Use to implement event delegation. + * + * @example $("a[@href=http://google.com]").click(function(event) { + * alert(event.target.href); + * }); + * @result "http://google.com" + * @desc Alerts the href property of the target element. + * + * @example function handler(event) { + * var target = $(event.target); + * if( target.is("li") ) { + * target.children().toggle(); + * } + * } + * $("ul").click(handler).find("li > ").hide(); + * @desc Implements a simple event delegation: The click handler is added + * to an unordered list, and the children of it's li children are hidden. + * Clicking one of the li children toggles (see toggle()) their children. + * + * @property + * @name event.target + * @type Element + * @cat Events + */ + +/** + * The pageX/Y property pair returns the mouse coordinates relative to the document. + * + * Fixed where necessary (IE). + * + * @example $("a").click(function(event) { + * alert("Current mouse position: " + event.pageX + ", " + event.pageY ); + * }); + * @result "Current mouse position: 130, 640" + * + * @property + * @name event.pageX/Y + * @type String + * @cat Events + */ + +/** + * Stops the bubbling of an event, prohibiting other handlers to get to + * handle that event. + * + * Fixed where necessary (IE). + * + * @example $("p").click(function(event){ + * event.stopPropagation(); + * // do something + * }); + * @desc Prohibits other event handlers to be called. + * + * @name event.stopPropagation + * @type undefined + * @cat Events + */ + +/** + * Prevents the browser from executing the default action. + * + * Fixed where necessary (IE). + * + * @example $("a").click(function(event){ + * event.preventDefault(); + * // do something + * }); + * @desc Stops the browser from changing the page to the + * href of any anchors. + * + * @name event.preventDefault + * @type undefined + * @cat Events + */ + /* * A number of helper functions used for managing events. * Many of the ideas behind this code orignated from diff --git a/src/fx/fxTest.js b/src/fx/fxTest.js index 8c29de63..23de82ac 100644 --- a/src/fx/fxTest.js +++ b/src/fx/fxTest.js @@ -9,4 +9,13 @@ test("animate(Hash, Object, Function) - assert that animate doesn't modify its a ok( hash.opacity == hashCopy.opacity, 'Check if animate changed the hash parameter' ); start(); }); +}); + +test("toggle()", function() { + var x = $("#foo"); + ok( x.is(":visible") ); + x.toggle(); + ok( x.is(":hidden") ); + x.toggle(); + ok( x.is(":visible") ); }); \ No newline at end of file diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js index 4a05ee53..40598076 100644 --- a/src/jquery/jquery.js +++ b/src/jquery/jquery.js @@ -1927,50 +1927,6 @@ jQuery.each({ * @cat DOM/Attributes */ -/** - * Displays each of the set of matched elements if they are hidden. - * - * @example $("p").show() - * @before
- * @result [Hello
] - * - * @name show - * @type jQuery - * @cat Effects - */ - -/** - * Hides each of the set of matched elements if they are shown. - * - * @example $("p").hide() - * @beforeHello
- * @result [ ] - * - * var pass = true, div = $("div"); - * div.hide().each(function(){ - * if ( this.style.display != "none" ) pass = false; - * }); - * ok( pass, "Hide" ); - * - * @name hide - * @type jQuery - * @cat Effects - */ - -/** - * Toggles each of the set of matched elements. If they are shown, - * toggle makes them hidden. If they are hidden, toggle - * makes them shown. - * - * @example $("p").toggle() - * @beforeHello
- * @result [ ,Hello Again
] - * - * @name toggle - * @type jQuery - * @cat Effects - */ - /** * Adds the specified class to each of the set of matched elements. * @@ -2054,20 +2010,6 @@ jQuery.each( { jQuery.attr( this, key, "" ); this.removeAttribute( key ); }, - show: function(){ - this.style.display = this.oldblock ? this.oldblock : ""; - if ( jQuery.css(this,"display") == "none" ) - this.style.display = "block"; - }, - hide: function(){ - this.oldblock = this.oldblock || jQuery.css(this,"display"); - if ( this.oldblock == "none" ) - this.oldblock = "block"; - this.style.display = "none"; - }, - toggle: function(){ - jQuery(this)[ jQuery(this).is(":hidden") ? "show" : "hide" ].apply( jQuery(this), arguments ); - }, addClass: function(c){ jQuery.className.add(this,c); },