From 41cc839a2dff6342aaba048eae36d66d2a25d288 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Zaefferer?= Date: Tue, 9 Jan 2007 17:15:22 +0000 Subject: [PATCH] Removed duplicated show/hide/toggle, added test for toggle(), started documentation of event properties/methods --- src/event/event.js | 97 ++++++++++++++++++++++++++++++++++++++++++++ src/fx/fxTest.js | 9 ++++ src/jquery/jquery.js | 58 -------------------------- 3 files changed, 106 insertions(+), 58 deletions(-) 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

Hello

- * @result [

Hello

] - * - * @name show - * @type jQuery - * @cat Effects - */ - -/** - * Hides each of the set of matched elements if they are shown. - * - * @example $("p").hide() - * @before

Hello

- * @result [

Hello

] - * - * 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() - * @before

Hello

Hello Again

- * @result [

Hello

,

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); },