Skip to content

Commit

Permalink
Removed duplicated show/hide/toggle, added test for toggle(), started…
Browse files Browse the repository at this point in the history
… documentation of event properties/methods
  • Loading branch information
jzaefferer committed Jan 9, 2007
1 parent d3d7d7e commit 41cc839
Show file tree
Hide file tree
Showing 3 changed files with 106 additions and 58 deletions.
97 changes: 97 additions & 0 deletions src/event/event.js
Original file line number Diff line number Diff line change
@@ -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
Expand Down
9 changes: 9 additions & 0 deletions src/fx/fxTest.js
Original file line number Diff line number Diff line change
Expand Up @@ -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") );
});
58 changes: 0 additions & 58 deletions src/jquery/jquery.js
Original file line number Diff line number Diff line change
Expand Up @@ -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 <p style="display: none">Hello</p>
* @result [ <p style="display: block">Hello</p> ]
*
* @name show
* @type jQuery
* @cat Effects
*/

/**
* Hides each of the set of matched elements if they are shown.
*
* @example $("p").hide()
* @before <p>Hello</p>
* @result [ <p style="display: none">Hello</p> ]
*
* 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 <p>Hello</p><p style="display: none">Hello Again</p>
* @result [ <p style="display: none">Hello</p>, <p style="display: block">Hello Again</p> ]
*
* @name toggle
* @type jQuery
* @cat Effects
*/

/**
* Adds the specified class to each of the set of matched elements.
*
Expand Down Expand Up @@ -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);
},
Expand Down

0 comments on commit 41cc839

Please sign in to comment.