diff options
-rw-r--r-- | build/docs/js/doc.js | 6 | ||||
-rw-r--r-- | build/docs/style/docs.xsl | 20 | ||||
-rw-r--r-- | newandnoteworthy.txt | 7 | ||||
-rw-r--r-- | src/jquery/jquery.js | 51 |
4 files changed, 66 insertions, 18 deletions
diff --git a/build/docs/js/doc.js b/build/docs/js/doc.js index dcf42a5c0..8a144f0d0 100644 --- a/build/docs/js/doc.js +++ b/build/docs/js/doc.js @@ -18,11 +18,7 @@ $(document).ready(function(){ }).ToolTipDemo('#fff'); $("a.name").click(function(){ - $("div.more,div.short",this.parentNode.parentNode) - .find("div.desc").each(function(){ - $(this).html( $(this).html().replace(/\n\n/g, "<br/><br/>") ); - }).end() - .toggle('slow'); + $("div.more,div.short",this.parentNode.parentNode).toggle('slow'); return false; }); diff --git a/build/docs/style/docs.xsl b/build/docs/style/docs.xsl index 8d9f67047..ff1977acc 100644 --- a/build/docs/style/docs.xsl +++ b/build/docs/style/docs.xsl @@ -37,7 +37,9 @@ </div> <div class='more'> <div class='desc'> - <xsl:value-of select="desc"/> + <xsl:for-each select="desc"> + <xsl:call-template name="break" /> + </xsl:for-each> </div> <xsl:for-each select="examples"> <div class='example'> @@ -66,4 +68,20 @@ </html> </xsl:template> +<xsl:template name="break"> + <xsl:param name="text" select="." /> + <xsl:choose> + <xsl:when test="contains($text, '

')"> + <xsl:value-of select="substring-before($text, '

')" /> + <br /><br /> + <xsl:call-template name="break"> + <xsl:with-param name="text" select="substring-after($text, '

')" /> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$text" /> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + </xsl:stylesheet> diff --git a/newandnoteworthy.txt b/newandnoteworthy.txt index 11650d9b0..5f35efc45 100644 --- a/newandnoteworthy.txt +++ b/newandnoteworthy.txt @@ -11,4 +11,9 @@ New and Noteworthy - Extensions to global ajax handlers: ajaxSend, ajaxSuccess, ajaxError and ajaxComplete get XMLHttpRequest and settings passed as arguments - Extensions to event handling: pageX and pageY are available x-browser (IE does not provide native pageX/Y) - Improved docs: $(String) method has now two seperate descriptions, one for selecting elements, one for creating (html on-the-fly) - - FX module: Most inline stlyes added by animations are now removed when the animation is complete, eg. height style when animating height (exception: display styles)
\ No newline at end of file + - FX module: Most inline stlyes added by animations are now removed when the animation is complete, eg. height style when animating height (exception: display styles) + - Added note to attr(String, Object) about issues with setting the name property on input elements + - Seperated internal stuff from get() into set() + - Merged the two API examples for each() into one more precise example + - Improved docs for $.browser and added docs for $.boxModel + - Docs for the jQuery constructor $() were improved: There is now $(String expression[, Object context]) and $(String html)
\ No newline at end of file diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js index 9e62fe3cb..177d86bf7 100644 --- a/src/jquery/jquery.js +++ b/src/jquery/jquery.js @@ -22,7 +22,7 @@ window.undefined = window.undefined; */
var jQuery = function(a,c) {
- // Shortcut for document ready (because $(document).each() is silly)
+ // Shortcut for document ready
if ( a && typeof a == "function" && jQuery.fn.ready && !a.nodeType && a[0] == undefined ) // Safari reports typeof on DOM NodeLists as a function
return jQuery(document).ready(a);
@@ -55,6 +55,13 @@ var jQuery = function(a,c) { // Find the matching elements and save them for later
jQuery.find( a, c ) );
+ // See if an extra function was provided
+ var fn = arguments[ arguments.length - 1 ];
+
+ // If so, execute it in context
+ if ( fn && typeof fn == "function" )
+ this.each(fn);
+
return this;
};
@@ -789,7 +796,7 @@ jQuery.fn = jQuery.prototype = { find: function(t) {
return this.pushStack( jQuery.map( this, function(a){
return jQuery.find(t,a);
- }));
+ }), arguments );
},
/**
@@ -810,7 +817,7 @@ jQuery.fn = jQuery.prototype = { clone: function(deep) {
return this.pushStack( jQuery.map( this, function(a){
return a.cloneNode( deep != undefined ? deep : true );
- }));
+ }), arguments );
},
/**
@@ -865,7 +872,7 @@ jQuery.fn = jQuery.prototype = { typeof t == "function" &&
jQuery.grep( this, t ) ||
- jQuery.filter(t,this).r );
+ jQuery.filter(t,this).r, arguments );
},
/**
@@ -899,7 +906,7 @@ jQuery.fn = jQuery.prototype = { not: function(t) {
return this.pushStack( typeof t == "string" ?
jQuery.filter(t,this,false).r :
- jQuery.grep(this,function(a){ return a != t; }) );
+ jQuery.grep(this,function(a){ return a != t; }), arguments );
},
/**
@@ -945,7 +952,7 @@ jQuery.fn = jQuery.prototype = { */
add: function(t) {
return this.pushStack( jQuery.merge( this, typeof t == "string" ?
- jQuery.find(t) : t.constructor == Array ? t : [t] ) );
+ jQuery.find(t) : t.constructor == Array ? t : [t] ), arguments );
},
/**
@@ -1021,11 +1028,28 @@ jQuery.fn = jQuery.prototype = { * @type jQuery
* @cat Core
*/
- pushStack: function(a) {
- if ( !this.stack )
- this.stack = [];
- this.stack.push( this.get() );
- return this.set( a );
+ pushStack: function(a,args) {
+ var fn = args && args[args.length-1];
+ var fn2 = args && args[args.length-2];
+
+ if ( fn && fn.constructor != Function ) fn = null;
+ if ( fn2 && fn2.constructor != Function ) fn2 = null;
+
+ if ( !fn ) {
+ if ( !this.stack ) this.stack = [];
+ this.stack.push( this.get() );
+ this.set( a );
+ } else {
+ var old = this.get();
+ this.set( a );
+
+ if ( fn2 && a.length || !fn2 )
+ this.each( fn2 || fn ).set( old );
+ else
+ this.set( old ).each( fn );
+ }
+
+ return this;
}
};
@@ -1992,6 +2016,11 @@ jQuery.extend({ * This property is available before the DOM is ready, therefore you can
* use it to add ready events only for certain browsers.
*
+ * There are situations where object detections is not reliable enough, in that
+ * cases it makes sense to use browser detection. Simply try to avoid both!
+ *
+ * A combination of browser and object detection yields quite reliable results.
+ *
* @example $.browser.msie
* @desc Returns true if the current useragent is some version of microsoft's internet explorer
*
|