Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
J
jquery
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
夏彬
jquery
Commits
9477c418
Commit
9477c418
authored
Jul 10, 2006
by
John Resig
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
More bug fixes and added documentation - passes the test suite now.
parent
df9c37ec
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
563 additions
and
518 deletions
+563
-518
ajax.js
ajax/ajax.js
+151
-137
event.js
event/event.js
+104
-102
fx.js
fx/fx.js
+282
-273
jquery.js
jquery/jquery.js
+26
-6
No files found.
ajax/ajax.js
View file @
9477c418
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
/**
/**
* Load HTML from a remote file and inject it into the DOM
* Load HTML from a remote file and inject it into the DOM
*/
*/
jQuery
.
prototype
.
load
=
function
(
url
,
params
,
callback
)
{
jQuery
.
fn
.
load
=
function
(
url
,
params
,
callback
)
{
// I overwrote the event plugin's .load
// I overwrote the event plugin's .load
// this won't happen again, I hope -John
// this won't happen again, I hope -John
if
(
url
&&
url
.
constructor
==
Function
)
if
(
url
&&
url
.
constructor
==
Function
)
...
@@ -52,49 +52,61 @@ jQuery.prototype.load = function( url, params, callback ) {
...
@@ -52,49 +52,61 @@ jQuery.prototype.load = function( url, params, callback ) {
return
this
;
return
this
;
};
};
/**
// If IE is used, create a wrapper for the XMLHttpRequest object
if
(
jQuery
.
browser
.
msie
)
XMLHttpRequest
=
function
(){
return
new
ActiveXObject
(
navigator
.
userAgent
.
indexOf
(
"MSIE 5"
)
>=
0
?
"Microsoft.XMLHTTP"
:
"Msxml2.XMLHTTP"
);
};
// Attach a bunch of functions for handling common AJAX events
new
function
(){
var
e
=
"ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess"
.
split
(
','
);
for
(
var
i
=
0
;
i
<
e
.
length
;
i
++
)
new
function
(){
var
o
=
e
[
i
];
jQuery
.
fn
[
o
]
=
function
(
f
){
return
this
.
bind
(
o
,
f
);
};
}
}
jQuery
.
extend
({
/**
* Load a remote page using a GET request
* Load a remote page using a GET request
*/
*/
jQuery
.
get
=
function
(
url
,
callback
,
type
)
{
get
:
function
(
url
,
data
,
callback
,
type
)
{
if
(
data
.
constructor
==
Function
)
{
callback
=
data
;
data
=
null
;
}
if
(
data
)
url
+=
"?"
+
jQuery
.
param
(
data
);
// Build and start the HTTP Request
// Build and start the HTTP Request
jQuery
.
ajax
(
"GET"
,
url
,
null
,
function
(
r
)
{
jQuery
.
ajax
(
"GET"
,
url
,
null
,
function
(
r
)
{
if
(
callback
)
callback
(
jQuery
.
httpData
(
r
,
type
)
);
if
(
callback
)
callback
(
jQuery
.
httpData
(
r
,
type
)
);
});
});
};
},
/**
/**
* Load a remote page using a POST request.
* Load a remote page using a POST request.
*/
*/
jQuery
.
post
=
function
(
url
,
data
,
callback
,
type
)
{
post
:
function
(
url
,
data
,
callback
,
type
)
{
// Build and start the HTTP Request
// Build and start the HTTP Request
jQuery
.
ajax
(
"POST"
,
url
,
jQuery
.
param
(
data
),
function
(
r
)
{
jQuery
.
ajax
(
"POST"
,
url
,
jQuery
.
param
(
data
),
function
(
r
)
{
if
(
callback
)
callback
(
jQuery
.
httpData
(
r
,
type
)
);
if
(
callback
)
callback
(
jQuery
.
httpData
(
r
,
type
)
);
});
});
};
},
// If IE is used, create a wrapper for the XMLHttpRequest object
if
(
jQuery
.
browser
==
"msie"
)
XMLHttpRequest
=
function
(){
return
new
ActiveXObject
(
(
navigator
.
userAgent
.
toLowerCase
().
indexOf
(
"msie 5"
)
>=
0
)
?
"Microsoft.XMLHTTP"
:
"Msxml2.XMLHTTP"
);
};
// Attach a bunch of functions for handling common AJAX events
(
function
(){
var
e
=
"ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess"
.
split
(
','
);
for
(
var
i
=
0
;
i
<
e
.
length
;
i
++
){
(
function
(){
/**
var
o
=
e
[
i
];
jQuery
.
fn
[
o
]
=
function
(
f
){
return
this
.
bind
(
o
,
f
);};
})();}
})();
/**
* A common wrapper for making XMLHttpRequests
* A common wrapper for making XMLHttpRequests
*/
*/
jQuery
.
ajax
=
function
(
type
,
url
,
data
,
ret
)
{
ajax
:
function
(
type
,
url
,
data
,
ret
)
{
// If only a single argument was passed in,
// If only a single argument was passed in,
// assume that it is a object of key/value pairs
// assume that it is a object of key/value pairs
if
(
!
url
)
{
if
(
!
url
)
{
...
@@ -107,7 +119,7 @@ jQuery.ajax = function( type, url, data, ret ) {
...
@@ -107,7 +119,7 @@ jQuery.ajax = function( type, url, data, ret ) {
}
}
// Watch for a new set of requests
// Watch for a new set of requests
if
(
!
jQuery
.
ajax
.
active
++
)
if
(
!
jQuery
.
active
++
)
jQuery
.
event
.
trigger
(
"ajaxStart"
);
jQuery
.
event
.
trigger
(
"ajaxStart"
);
// Create the request object
// Create the request object
...
@@ -153,43 +165,43 @@ jQuery.ajax = function( type, url, data, ret ) {
...
@@ -153,43 +165,43 @@ jQuery.ajax = function( type, url, data, ret ) {
jQuery
.
event
.
trigger
(
"ajaxComplete"
);
jQuery
.
event
.
trigger
(
"ajaxComplete"
);
// Handle the global AJAX counter
// Handle the global AJAX counter
if
(
!
--
jQuery
.
ajax
.
active
)
if
(
!
--
jQuery
.
active
)
jQuery
.
event
.
trigger
(
"ajaxStop"
);
jQuery
.
event
.
trigger
(
"ajaxStop"
);
// Process result
// Process result
if
(
ret
)
ret
(
xml
);
if
(
ret
)
ret
(
xml
);
}
}
};
}
// Send the data
// Send the data
xml
.
send
(
data
);
xml
.
send
(
data
);
};
},
// Counter for holding the number of active queries
// Counter for holding the number of active queries
jQuery
.
ajax
.
active
=
0
;
active
:
0
,
// Determines if an XMLHttpRequest was successful or not
// Determines if an XMLHttpRequest was successful or not
jQuery
.
httpSuccess
=
function
(
r
)
{
httpSuccess
:
function
(
r
)
{
try
{
try
{
return
r
.
status
?
return
r
.
status
?
(
r
.
status
>=
200
&&
r
.
status
<
300
)
||
r
.
status
==
304
:
(
r
.
status
>=
200
&&
r
.
status
<
300
)
||
r
.
status
==
304
:
location
.
protocol
==
"file:"
;
location
.
protocol
==
"file:"
;
}
catch
(
e
){}
}
catch
(
e
){}
return
false
;
return
false
;
};
},
// Get the data out of an XMLHttpRequest.
// Get the data out of an XMLHttpRequest.
// Return parsed XML if content-type header is "xml" and type is "xml" or omitted,
// Return parsed XML if content-type header is "xml" and type is "xml" or omitted,
// otherwise return plain text.
// otherwise return plain text.
jQuery
.
httpData
=
function
(
r
,
type
)
{
httpData
:
function
(
r
,
type
)
{
var
ct
=
r
.
getResponseHeader
(
"content-type"
);
var
ct
=
r
.
getResponseHeader
(
"content-type"
);
var
xml
=
(
!
type
||
type
==
"xml"
)
&&
ct
&&
ct
.
indexOf
(
"xml"
)
>=
0
;
var
xml
=
(
!
type
||
type
==
"xml"
)
&&
ct
&&
ct
.
indexOf
(
"xml"
)
>=
0
;
return
xml
?
r
.
responseXML
:
r
.
responseText
;
return
xml
?
r
.
responseXML
:
r
.
responseText
;
};
},
// Serialize an array of form elements or a set of
// Serialize an array of form elements or a set of
// key/values into a query string
// key/values into a query string
jQuery
.
param
=
function
(
a
)
{
param
:
function
(
a
)
{
var
s
=
[];
var
s
=
[];
// If an array was passed in, assume that it is an array
// If an array was passed in, assume that it is an array
...
@@ -207,4 +219,6 @@ jQuery.param = function(a) {
...
@@ -207,4 +219,6 @@ jQuery.param = function(a) {
// Return the resulting serialization
// Return the resulting serialization
return
s
.
join
(
"&"
);
return
s
.
join
(
"&"
);
};
}
});
event/event.js
View file @
9477c418
// We're overriding the old toggle function, so
jQuery
.
fn
.
extend
({
// remember it for later
jQuery
.
prototype
.
_toggle
=
jQuery
.
prototype
.
toggle
;
/**
// We're overriding the old toggle function, so
// remember it for later
_toggle
:
jQuery
.
fn
.
toggle
,
/**
* Toggle between two function calls every other click.
* Toggle between two function calls every other click.
*/
*/
jQuery
.
prototype
.
toggle
=
function
(
a
,
b
)
{
toggle
:
function
(
a
,
b
)
{
// If two functions are passed in, we're
// If two functions are passed in, we're
// toggling on a click
// toggling on a click
return
a
&&
b
?
this
.
click
(
function
(
e
){
return
a
&&
b
?
this
.
click
(
function
(
e
){
...
@@ -21,12 +23,12 @@ jQuery.prototype.toggle = function(a,b) {
...
@@ -21,12 +23,12 @@ jQuery.prototype.toggle = function(a,b) {
// Otherwise, execute the old toggle function
// Otherwise, execute the old toggle function
this
.
_toggle
();
this
.
_toggle
();
};
},
/**
/**
* Toggle between two function calls on mouse over/out.
* Toggle between two function calls on mouse over/out.
*/
*/
jQuery
.
prototype
.
hover
=
function
(
f
,
g
)
{
hover
:
function
(
f
,
g
)
{
// A private function for haandling mouse 'hovering'
// A private function for haandling mouse 'hovering'
function
handleHover
(
e
)
{
function
handleHover
(
e
)
{
...
@@ -45,12 +47,12 @@ jQuery.prototype.hover = function(f,g) {
...
@@ -45,12 +47,12 @@ jQuery.prototype.hover = function(f,g) {
// Bind the function to the two event listeners
// Bind the function to the two event listeners
return
this
.
mouseover
(
handleHover
).
mouseout
(
handleHover
);
return
this
.
mouseover
(
handleHover
).
mouseout
(
handleHover
);
};
},
/**
/**
* Bind a function to fire when the DOM is ready.
* Bind a function to fire when the DOM is ready.
*/
*/
jQuery
.
prototype
.
ready
=
function
(
f
)
{
ready
:
function
(
f
)
{
// If the DOM is already ready
// If the DOM is already ready
if
(
jQuery
.
isReady
)
if
(
jQuery
.
isReady
)
// Execute the function immediately
// Execute the function immediately
...
@@ -63,40 +65,66 @@ jQuery.prototype.ready = function(f) {
...
@@ -63,40 +65,66 @@ jQuery.prototype.ready = function(f) {
}
}
return
this
;
return
this
;
};
}
});
jQuery
.
extend
({
/*
* All the code that makes DOM Ready work nicely.
*/
isReady
:
false
,
readyList
:
[],
// Handle when the DOM is ready
ready
:
function
()
{
// Make sure that the DOM is not already loaded
if
(
!
jQuery
.
isReady
)
{
// Remember that the DOM is ready
jQuery
.
isReady
=
true
;
// If there are functions bound, to execute
if
(
jQuery
.
readyList
)
{
// Execute all of them
for
(
var
i
=
0
;
i
<
jQuery
.
readyList
.
length
;
i
++
)
jQuery
.
readyList
[
i
].
apply
(
document
);
// Reset the list of functions
jQuery
.
readyList
=
null
;
}
}
}
});
(
function
(){
new
function
(){
/*
/*
* Bind a number of event-handling functions, dynamically
* Bind a number of event-handling functions, dynamically
*/
*/
var
e
=
(
"blur,focus,
contextmenu,
load,resize,scroll,unload,click,dblclick,"
+
var
e
=
(
"blur,focus,load,resize,scroll,unload,click,dblclick,"
+
"mousedown,mouseup,mouse
enter,mouseleave,mousemove,mouseover,mouseout,"
+
"mousedown,mouseup,mouse
move,mouseover,mouseout,change,reset,select,"
+
"
change,reset,select,submit,keydown,keypress,keyup
"
).
split
(
","
);
"
submit,keydown,keypress,keyup,error
"
).
split
(
","
);
// Go through all the event names, but make sure that
// Go through all the event names, but make sure that
// it is enclosed properly
// it is enclosed properly
for
(
var
i
=
0
;
i
<
e
.
length
;
i
++
)
{(
function
(){
for
(
var
i
=
0
;
i
<
e
.
length
;
i
++
)
new
function
(){
var
o
=
e
[
i
];
var
o
=
e
[
i
];
// Handle event binding
// Handle event binding
jQuery
.
prototype
[
o
]
=
function
(
f
){
return
this
.
bind
(
o
,
f
);
};
jQuery
.
fn
[
o
]
=
function
(
f
){
return
f
?
this
.
bind
(
o
,
f
)
:
this
.
trigger
(
o
);
};
// Handle event unbinding
// Handle event unbinding
jQuery
.
prototype
[
"un"
+
o
]
=
function
(
f
){
return
this
.
unbind
(
o
,
f
);
};
jQuery
.
fn
[
"un"
+
o
]
=
function
(
f
){
return
this
.
unbind
(
o
,
f
);
};
// Handle event triggering
jQuery
.
prototype
[
"do"
+
o
]
=
function
(){
return
this
.
trigger
(
o
);
};
// Finally, handle events that only fire once
// Finally, handle events that only fire once
jQuery
.
prototype
[
"one"
+
o
]
=
function
(
f
){
jQuery
.
fn
[
"one"
+
o
]
=
function
(
f
){
// Attach the event listener
// Attach the event listener
return
this
.
bind
(
o
,
function
(
e
){
return
this
.
bind
(
o
,
function
(
e
){
// TODO: Remove the event listener, instead of this hack
// TODO: Remove the event listener, instead of this hack
// If this function has already been executed, stop
// If this function has already been executed, stop
if
(
this
[
o
+
f
]
!==
null
)
if
(
this
[
o
+
f
]
!==
null
)
return
;
return
true
;
// Otherwise, mark as having been executed
// Otherwise, mark as having been executed
this
[
o
+
f
]
++
;
this
[
o
+
f
]
++
;
...
@@ -106,42 +134,16 @@ jQuery.prototype.ready = function(f) {
...
@@ -106,42 +134,16 @@ jQuery.prototype.ready = function(f) {
});
});
};
};
})();}
/*
* All the code that makes DOM Ready work nicely.
*/
jQuery
.
isReady
=
false
;
jQuery
.
readyList
=
[];
// Handle when the DOM is ready
jQuery
.
ready
=
function
()
{
// Make sure that the DOM is not already loaded
if
(
!
jQuery
.
isReady
)
{
// Remember that the DOM is ready
jQuery
.
isReady
=
true
;
// If there are functions bound, to execute
if
(
jQuery
.
readyList
)
{
// Execute all of them
for
(
var
i
=
0
;
i
<
jQuery
.
readyList
.
length
;
i
++
)
jQuery
.
readyList
[
i
].
apply
(
document
);
// Reset the list of functions
jQuery
.
readyList
=
null
;
}
}
}
};
// If Mozilla is used
// If Mozilla is used
if
(
jQuery
.
browser
==
"mozilla"
||
jQuery
.
browser
==
"opera"
)
{
if
(
jQuery
.
browser
.
mozilla
||
jQuery
.
browser
.
opera
)
{
// Use the handy event callback
// Use the handy event callback
document
.
addEventListener
(
"DOMContentLoaded"
,
jQuery
.
ready
,
false
);
document
.
addEventListener
(
"DOMContentLoaded"
,
jQuery
.
ready
,
false
);
// If IE is used, use the excellent hack by Matthias Miller
// If IE is used, use the excellent hack by Matthias Miller
// http://www.outofhanwell.com/blog/index.php?title=the_window_onload_problem_revisited
// http://www.outofhanwell.com/blog/index.php?title=the_window_onload_problem_revisited
}
else
if
(
jQuery
.
browser
==
"msie"
)
{
}
else
if
(
jQuery
.
browser
.
msie
)
{
// Only works if you document.write() it
// Only works if you document.write() it
document
.
write
(
"<scr"
+
"ipt id=__ie_init defer=true "
+
document
.
write
(
"<scr"
+
"ipt id=__ie_init defer=true "
+
...
@@ -158,7 +160,7 @@ jQuery.prototype.ready = function(f) {
...
@@ -158,7 +160,7 @@ jQuery.prototype.ready = function(f) {
script
=
null
;
script
=
null
;
// If Safari is used
// If Safari is used
}
else
if
(
jQuery
.
browser
==
"safari"
)
{
}
else
if
(
jQuery
.
browser
.
safari
)
{
// Continually check to see if the document.readyState is valid
// Continually check to see if the document.readyState is valid
jQuery
.
safariTimer
=
setInterval
(
function
(){
jQuery
.
safariTimer
=
setInterval
(
function
(){
// loaded and complete are both valid states
// loaded and complete are both valid states
...
@@ -178,4 +180,4 @@ jQuery.prototype.ready = function(f) {
...
@@ -178,4 +180,4 @@ jQuery.prototype.ready = function(f) {
// A fallback to window.onload, that will always work
// A fallback to window.onload, that will always work
jQuery
.
event
.
add
(
window
,
"load"
,
jQuery
.
ready
);
jQuery
.
event
.
add
(
window
,
"load"
,
jQuery
.
ready
);
}
)();
}
fx/fx.js
View file @
9477c418
// overwrite the old show method
jQuery
.
fn
.
extend
({
jQuery
.
prototype
.
_show
=
jQuery
.
prototype
.
show
;
/**
// overwrite the old show method
_show
:
jQuery
.
fn
.
show
,
/**
* The effects module overloads the show method to now allow
* The effects module overloads the show method to now allow
* for a speed to the show operation. What actually happens is
* for a speed to the show operation. What actually happens is
* that the height, width, and opacity to the matched elements
* that the height, width, and opacity to the matched elements
...
@@ -12,75 +14,72 @@ jQuery.prototype._show = jQuery.prototype.show;
...
@@ -12,75 +14,72 @@ jQuery.prototype._show = jQuery.prototype.show;
* that are already shown. This can be circumvented by doing this:
* that are already shown. This can be circumvented by doing this:
* $("p:hidden").show("slow");
* $("p:hidden").show("slow");
*/
*/
jQuery
.
prototype
.
show
=
function
(
speed
,
callback
){
show
:
function
(
speed
,
callback
){
return
speed
?
this
.
animate
({
return
speed
?
this
.
animate
({
height
:
"show"
,
width
:
"show"
,
opacity
:
"show"
height
:
"show"
,
width
:
"show"
,
opacity
:
"show"
},
speed
,
callback
)
:
this
.
_show
();
},
speed
,
callback
)
:
this
.
_show
();
};
},
// We're overwriting the old hide method
jQuery
.
prototype
.
_hide
=
jQuery
.
prototype
.
hide
;
// We're overwriting the old hide method
_hide
:
jQuery
.
fn
.
hide
,
/**
/**
* The hide function behaves very similary to the show function,
* The hide function behaves very similary to the show function,
* but is just the opposite.
* but is just the opposite.
* $("p:visible").hide("slow");
* $("p:visible").hide("slow");
*/
*/
jQuery
.
prototype
.
hide
=
function
(
speed
,
callback
){
hide
:
function
(
speed
,
callback
){
return
speed
?
this
.
animate
({
return
speed
?
this
.
animate
({
height
:
"hide"
,
height
:
"hide"
,
width
:
"hide"
,
opacity
:
"hide"
width
:
"hide"
,
opacity
:
"hide"
},
speed
,
callback
)
:
this
.
_hide
();
},
speed
,
callback
)
:
this
.
_hide
();
};
},
/**
/**
* This function increases the height and opacity for all matched
* This function increases the height and opacity for all matched
* elements. This is very similar to 'show', but does not change
* elements. This is very similar to 'show', but does not change
* the width - creating a neat sliding effect.
* the width - creating a neat sliding effect.
* $("p:hidden").slideDown("slow");
* $("p:hidden").slideDown("slow");
*/
*/
jQuery
.
prototype
.
slideDown
=
function
(
speed
,
callback
){
slideDown
:
function
(
speed
,
callback
){
return
this
.
animate
({
height
:
"show"
},
speed
,
callback
);
return
this
.
animate
({
height
:
"show"
},
speed
,
callback
);
};
},
/**
/**
* Just like slideDown, only it hides all matched elements.
* Just like slideDown, only it hides all matched elements.
* $("p:visible").slideUp("slow");
* $("p:visible").slideUp("slow");
*/
*/
jQuery
.
prototype
.
slideUp
=
function
(
speed
,
callback
){
slideUp
:
function
(
speed
,
callback
){
return
this
.
animate
({
height
:
"hide"
},
speed
,
callback
);
return
this
.
animate
({
height
:
"hide"
},
speed
,
callback
);
};
},
/**
/**
* Adjusts the opacity of all matched elements from a hidden,
* Adjusts the opacity of all matched elements from a hidden,
* to a fully visible, state.
* to a fully visible, state.
* $("p:hidden").fadeIn("slow");
* $("p:hidden").fadeIn("slow");
*/
*/
jQuery
.
prototype
.
fadeIn
=
function
(
speed
,
callback
){
fadeIn
:
function
(
speed
,
callback
){
return
this
.
animate
({
opacity
:
"show"
},
speed
,
callback
);
return
this
.
animate
({
opacity
:
"show"
},
speed
,
callback
);
};
},
/**
/**
* Same as fadeIn, but transitions from a visible, to a hidden state.
* Same as fadeIn, but transitions from a visible, to a hidden state.
* $("p:visible").fadeOut("slow");
* $("p:visible").fadeOut("slow");
*/
*/
jQuery
.
prototype
.
fadeOut
=
function
(
speed
,
callback
){
fadeOut
:
function
(
speed
,
callback
){
return
this
.
animate
({
opacity
:
"hide"
},
speed
,
callback
);
return
this
.
animate
({
opacity
:
"hide"
},
speed
,
callback
);
};
},
/**
/**
* ...
* ...
*/
*/
jQuery
.
prototype
.
fadeTo
=
function
(
speed
,
to
,
callback
){
fadeTo
:
function
(
speed
,
to
,
callback
){
return
this
.
animate
({
opacity
:
to
},
speed
,
callback
);
return
this
.
animate
({
opacity
:
to
},
speed
,
callback
);
};
},
/**
/**
*
*
*/
*/
jQuery
.
prototype
.
animate
=
function
(
prop
,
speed
,
callback
)
{
animate
:
function
(
prop
,
speed
,
callback
)
{
return
this
.
queue
(
function
(){
return
this
.
queue
(
function
(){
var
i
=
0
;
var
i
=
0
;
for
(
var
p
in
prop
)
{
for
(
var
p
in
prop
)
{
...
@@ -91,15 +90,52 @@ jQuery.prototype.animate = function(prop,speed,callback) {
...
@@ -91,15 +90,52 @@ jQuery.prototype.animate = function(prop,speed,callback) {
e
[
prop
[
p
]
]();
e
[
prop
[
p
]
]();
}
}
});
});
};
},
/**
*
* @private
*/
queue
:
function
(
type
,
fn
){
if
(
!
fn
)
{
fn
=
type
;
type
=
"fx"
;
}
return
this
.
each
(
function
(){
if
(
!
this
.
queue
)
this
.
queue
=
{};
if
(
!
this
.
queue
[
type
]
)
this
.
queue
[
type
]
=
[];
this
.
queue
[
type
].
push
(
fn
);
if
(
this
.
queue
[
type
].
length
==
1
)
fn
.
apply
(
this
);
});
}
jQuery
.
speed
=
function
(
s
,
o
,
i
)
{
});
jQuery
.
extend
({
setAuto
:
function
(
e
,
p
)
{
var
a
=
e
.
style
[
p
];
var
o
=
jQuery
.
css
(
e
,
p
);
e
.
style
[
p
]
=
"auto"
;
var
n
=
jQuery
.
css
(
e
,
p
);
if
(
o
!=
n
)
e
.
style
[
p
]
=
a
;
},
speed
:
function
(
s
,
o
,
i
)
{
o
=
o
||
{};
o
=
o
||
{};
if
(
o
.
constructor
==
Function
)
if
(
o
.
constructor
==
Function
)
o
=
{
complete
:
o
};
o
=
{
complete
:
o
};
var
ss
=
{
"slow"
:
600
,
"fast"
:
200
};
var
ss
=
{
slow
:
600
,
fast
:
200
};
o
.
duration
=
(
s
&&
s
.
constructor
==
Number
?
s
:
ss
[
s
])
||
400
;
o
.
duration
=
(
s
&&
s
.
constructor
==
Number
?
s
:
ss
[
s
])
||
400
;
// Queueing
// Queueing
...
@@ -114,11 +150,11 @@ jQuery.speed = function(s,o,i) {
...
@@ -114,11 +150,11 @@ jQuery.speed = function(s,o,i) {
o
.
complete
=
null
;
o
.
complete
=
null
;
return
o
;
return
o
;
};
},
jQuery
.
queue
=
{};
queue
:
{},
jQuery
.
dequeue
=
function
(
elem
,
type
){
dequeue
:
function
(
elem
,
type
){
type
=
type
||
"fx"
;
type
=
type
||
"fx"
;
if
(
elem
.
queue
&&
elem
.
queue
[
type
]
)
{
if
(
elem
.
queue
&&
elem
.
queue
[
type
]
)
{
...
@@ -131,44 +167,15 @@ jQuery.dequeue = function(elem,type){
...
@@ -131,44 +167,15 @@ jQuery.dequeue = function(elem,type){
if
(
f
)
if
(
f
)
f
.
apply
(
elem
);
f
.
apply
(
elem
);
}
}
};
},
jQuery
.
prototype
.
queue
=
function
(
type
,
fn
){
if
(
!
fn
)
{
fn
=
type
;
type
=
"fx"
;
}
return
this
.
each
(
function
(){
/*
if
(
!
this
.
queue
)
this
.
queue
=
{};
if
(
!
this
.
queue
[
type
]
)
this
.
queue
[
type
]
=
[];
this
.
queue
[
type
].
push
(
fn
);
if
(
this
.
queue
[
type
].
length
==
1
)
fn
.
apply
(
this
);
});
};
jQuery
.
setAuto
=
function
(
e
,
p
)
{
var
a
=
e
.
style
[
p
];
var
o
=
jQuery
.
css
(
e
,
p
);
e
.
style
[
p
]
=
"auto"
;
var
n
=
jQuery
.
css
(
e
,
p
);
if
(
o
!=
n
)
e
.
style
[
p
]
=
a
;
};
/*
* I originally wrote fx() as a clone of moo.fx and in the process
* I originally wrote fx() as a clone of moo.fx and in the process
* of making it small in size the code became illegible to sane
* of making it small in size the code became illegible to sane
* people. You've been warned.
* people. You've been warned.
*/
*/
jQuery
.
fx
=
function
(
elem
,
options
,
prop
){
fx
:
function
(
elem
,
options
,
prop
){
var
z
=
this
;
var
z
=
this
;
...
@@ -233,7 +240,7 @@ jQuery.fx = function( elem, options, prop ){
...
@@ -233,7 +240,7 @@ jQuery.fx = function( elem, options, prop ){
};
};
// IE has trouble with opacity if it doesn't have layout
// IE has trouble with opacity if it doesn't have layout
if
(
jQuery
.
browser
==
"msie"
&&
!
z
.
el
.
currentStyle
.
hasLayout
)
if
(
jQuery
.
browser
.
msie
&&
!
z
.
el
.
currentStyle
.
hasLayout
)
y
.
zoom
=
1
;
y
.
zoom
=
1
;
// Remember the overflow of the element
// Remember the overflow of the element
...
@@ -284,4 +291,6 @@ jQuery.fx = function( elem, options, prop ){
...
@@ -284,4 +291,6 @@ jQuery.fx = function( elem, options, prop ){
}
}
};
};
};
}
});
jquery/jquery.js
View file @
9477c418
...
@@ -457,9 +457,9 @@ jQuery.fn = jQuery.prototype = {
...
@@ -457,9 +457,9 @@ jQuery.fn = jQuery.prototype = {
},
},
/**
/**
* End
all 'destructive' operations, reverting the list of matched elements.
* End
the most recent 'destructive' operation, reverting the list of matched elements
*
After an end operation, the list of matched elements will revert to the last
*
back to its previous state. After an end operation, the list of matched elements will
* state of matched elements.
*
revert to the last
state of matched elements.
*
*
* @example $("p").find("span").end();
* @example $("p").find("span").end();
* @before <p><span>Hello</span>, how are you?</p>
* @before <p><span>Hello</span>, how are you?</p>
...
@@ -472,6 +472,22 @@ jQuery.fn = jQuery.prototype = {
...
@@ -472,6 +472,22 @@ jQuery.fn = jQuery.prototype = {
return
this
.
get
(
this
.
stack
.
pop
()
);
return
this
.
get
(
this
.
stack
.
pop
()
);
},
},
/**
* Searches for all elements that match the specified expression.
* This method is the optimal way of finding additional descendant
* elements with which to process.
*
* All searching is done using a jQuery expression. The expression can be
* written using CSS 1-3 Selector sytax, or basic XPath.
*
* @example $("p").find("span");
* @before <p><span>Hello</span>, how are you?</p>
* @result $("p").find("span") == [ <span>Hello</span> ]
*
* @name find
* @type jQuery
* @param String expr An expression to search with.
*/
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
);
...
@@ -515,7 +531,7 @@ jQuery.fn = jQuery.prototype = {
...
@@ -515,7 +531,7 @@ jQuery.fn = jQuery.prototype = {
},
},
/**
/**
*
:-P
*
*
*
* @private
* @private
* @name domManip
* @name domManip
...
@@ -926,7 +942,7 @@ jQuery.extend({
...
@@ -926,7 +942,7 @@ jQuery.extend({
if
(
m
)
{
if
(
m
)
{
r
=
ret
=
jQuery
.
map
(
ret
,
jQuery
.
token
[
i
+
1
]
);
r
=
ret
=
jQuery
.
map
(
ret
,
jQuery
.
token
[
i
+
1
]
);
t
=
jQuery
.
trim
(
t
).
replace
(
re
,
""
);
t
=
jQuery
.
trim
(
t
.
replace
(
re
,
""
)
);
foundToken
=
true
;
foundToken
=
true
;
}
}
}
}
...
@@ -1058,10 +1074,14 @@ jQuery.extend({
...
@@ -1058,10 +1074,14 @@ jQuery.extend({
// Otherwise, find the expression to execute
// Otherwise, find the expression to execute
else
{
else
{
var
f
=
jQuery
.
expr
[
m
[
1
]];
if
(
f
.
constructor
!=
String
)
f
=
jQuery
.
expr
[
m
[
1
]][
m
[
2
]];
// Build a custom macro to enclose it
// Build a custom macro to enclose it
eval
(
"f = function(a,i){"
+
eval
(
"f = function(a,i){"
+
(
m
[
1
]
==
"@"
?
"z=jQuery.attr(a,m[3]);"
:
""
)
+
(
m
[
1
]
==
"@"
?
"z=jQuery.attr(a,m[3]);"
:
""
)
+
"return "
+
jQuery
.
expr
[
m
[
1
]]
+
"}"
);
"return "
+
f
+
"}"
);
// Execute it against the current filter
// Execute it against the current filter
r
=
g
(
r
,
f
);
r
=
g
(
r
,
f
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment