Got context functions back in, added noteworthy stuff, replaced js linebreak replacer with xstl

This commit is contained in:
Jörn Zaefferer 2006-12-12 20:33:10 +00:00
parent fb11b33d68
commit 6ac46e6a5a
4 changed files with 66 additions and 18 deletions

View file

@ -18,11 +18,7 @@ $(document).ready(function(){
}).ToolTipDemo('#fff'); }).ToolTipDemo('#fff');
$("a.name").click(function(){ $("a.name").click(function(){
$("div.more,div.short",this.parentNode.parentNode) $("div.more,div.short",this.parentNode.parentNode).toggle('slow');
.find("div.desc").each(function(){
$(this).html( $(this).html().replace(/\n\n/g, "<br/><br/>") );
}).end()
.toggle('slow');
return false; return false;
}); });

View file

@ -37,7 +37,9 @@
</div> </div>
<div class='more'> <div class='more'>
<div class='desc'> <div class='desc'>
<xsl:value-of select="desc"/> <xsl:for-each select="desc">
<xsl:call-template name="break" />
</xsl:for-each>
</div> </div>
<xsl:for-each select="examples"> <xsl:for-each select="examples">
<div class='example'> <div class='example'>
@ -66,4 +68,20 @@
</html> </html>
</xsl:template> </xsl:template>
<xsl:template name="break">
<xsl:param name="text" select="." />
<xsl:choose>
<xsl:when test="contains($text, '&#xa;&#xa;')">
<xsl:value-of select="substring-before($text, '&#xa;&#xa;')" />
<br /><br />
<xsl:call-template name="break">
<xsl:with-param name="text" select="substring-after($text, '&#xa;&#xa;')" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View file

@ -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 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) - 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) - 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) - 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)

51
src/jquery/jquery.js vendored
View file

@ -22,7 +22,7 @@ window.undefined = window.undefined;
*/ */
var jQuery = function(a,c) { 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 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); return jQuery(document).ready(a);
@ -55,6 +55,13 @@ var jQuery = function(a,c) {
// Find the matching elements and save them for later // Find the matching elements and save them for later
jQuery.find( a, c ) ); 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; return this;
}; };
@ -789,7 +796,7 @@ jQuery.fn = jQuery.prototype = {
find: function(t) { find: function(t) {
return this.pushStack( jQuery.map( this, function(a){ return this.pushStack( jQuery.map( this, function(a){
return jQuery.find(t,a); return jQuery.find(t,a);
})); }), arguments );
}, },
/** /**
@ -810,7 +817,7 @@ jQuery.fn = jQuery.prototype = {
clone: function(deep) { clone: function(deep) {
return this.pushStack( jQuery.map( this, function(a){ return this.pushStack( jQuery.map( this, function(a){
return a.cloneNode( deep != undefined ? deep : true ); return a.cloneNode( deep != undefined ? deep : true );
})); }), arguments );
}, },
/** /**
@ -865,7 +872,7 @@ jQuery.fn = jQuery.prototype = {
typeof t == "function" && typeof t == "function" &&
jQuery.grep( this, t ) || 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) { not: function(t) {
return this.pushStack( typeof t == "string" ? return this.pushStack( typeof t == "string" ?
jQuery.filter(t,this,false).r : 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) { add: function(t) {
return this.pushStack( jQuery.merge( this, typeof t == "string" ? 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 * @type jQuery
* @cat Core * @cat Core
*/ */
pushStack: function(a) { pushStack: function(a,args) {
if ( !this.stack ) var fn = args && args[args.length-1];
this.stack = []; var fn2 = args && args[args.length-2];
this.stack.push( this.get() );
return this.set( a ); 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 * This property is available before the DOM is ready, therefore you can
* use it to add ready events only for certain browsers. * 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 * @example $.browser.msie
* @desc Returns true if the current useragent is some version of microsoft's internet explorer * @desc Returns true if the current useragent is some version of microsoft's internet explorer
* *