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
d6d5ed4c
Commit
d6d5ed4c
authored
Jan 07, 2010
by
jeresig
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'setterargs'
parents
a9665bbe
0e5370b8
Changes
8
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
653 additions
and
263 deletions
+653
-263
attributes.js
src/attributes.js
+63
-64
core.js
src/core.js
+1
-1
manipulation.js
src/manipulation.js
+18
-8
offset.js
src/offset.js
+15
-10
attributes.js
test/unit/attributes.js
+227
-9
css.js
test/unit/css.js
+100
-46
manipulation.js
test/unit/manipulation.js
+206
-109
offset.js
test/unit/offset.js
+23
-16
No files found.
src/attributes.js
View file @
d6d5ed4c
...
@@ -12,10 +12,20 @@ jQuery.fn.extend({
...
@@ -12,10 +12,20 @@ jQuery.fn.extend({
return
access
(
this
,
name
,
value
,
true
,
jQuery
.
attr
);
return
access
(
this
,
name
,
value
,
true
,
jQuery
.
attr
);
},
},
removeAttr
:
function
(
name
,
fn
)
{
return
this
.
each
(
function
(){
jQuery
.
attr
(
this
,
name
,
""
);
if
(
this
.
nodeType
===
1
)
{
this
.
removeAttribute
(
name
);
}
});
},
addClass
:
function
(
value
)
{
addClass
:
function
(
value
)
{
if
(
jQuery
.
isFunction
(
value
)
)
{
if
(
jQuery
.
isFunction
(
value
)
)
{
return
this
.
each
(
function
()
{
return
this
.
each
(
function
(
i
)
{
jQuery
(
this
).
addClass
(
value
.
call
(
this
)
);
var
self
=
jQuery
(
this
);
self
.
addClass
(
value
.
call
(
this
,
i
,
self
.
attr
(
"class"
))
);
});
});
}
}
...
@@ -46,8 +56,9 @@ jQuery.fn.extend({
...
@@ -46,8 +56,9 @@ jQuery.fn.extend({
removeClass
:
function
(
value
)
{
removeClass
:
function
(
value
)
{
if
(
jQuery
.
isFunction
(
value
)
)
{
if
(
jQuery
.
isFunction
(
value
)
)
{
return
this
.
each
(
function
()
{
return
this
.
each
(
function
(
i
)
{
jQuery
(
this
).
removeClass
(
value
.
call
(
this
)
);
var
self
=
jQuery
(
this
);
self
.
removeClass
(
value
.
call
(
this
,
i
,
self
.
attr
(
"class"
))
);
});
});
}
}
...
@@ -75,6 +86,41 @@ jQuery.fn.extend({
...
@@ -75,6 +86,41 @@ jQuery.fn.extend({
return
this
;
return
this
;
},
},
toggleClass
:
function
(
value
,
stateVal
)
{
var
type
=
typeof
value
,
isBool
=
typeof
stateVal
===
"boolean"
;
if
(
jQuery
.
isFunction
(
value
)
)
{
return
this
.
each
(
function
(
i
)
{
var
self
=
jQuery
(
this
);
self
.
toggleClass
(
value
.
call
(
this
,
i
,
self
.
attr
(
"class"
),
stateVal
),
stateVal
);
});
}
return
this
.
each
(
function
()
{
if
(
type
===
"string"
)
{
// toggle individual class names
var
className
,
i
=
0
,
self
=
jQuery
(
this
),
state
=
stateVal
,
classNames
=
value
.
split
(
rspace
);
while
(
(
className
=
classNames
[
i
++
])
)
{
// check each className given, space seperated list
state
=
isBool
?
state
:
!
self
.
hasClass
(
className
);
self
[
state
?
"addClass"
:
"removeClass"
](
className
);
}
}
else
if
(
type
===
"undefined"
||
type
===
"boolean"
)
{
if
(
this
.
className
)
{
// store className if set
jQuery
.
data
(
this
,
"__className__"
,
this
.
className
);
}
// toggle whole className
this
.
className
=
this
.
className
||
value
===
false
?
""
:
jQuery
.
data
(
this
,
"__className__"
)
||
""
;
}
});
},
hasClass
:
function
(
selector
)
{
hasClass
:
function
(
selector
)
{
var
className
=
" "
+
selector
+
" "
;
var
className
=
" "
+
selector
+
" "
;
for
(
var
i
=
0
,
l
=
this
.
length
;
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
this
.
length
;
i
<
l
;
i
++
)
{
...
@@ -142,30 +188,27 @@ jQuery.fn.extend({
...
@@ -142,30 +188,27 @@ jQuery.fn.extend({
return
undefined
;
return
undefined
;
}
}
// Typecast once if the value is a number
var
isFunction
=
jQuery
.
isFunction
(
value
);
if
(
typeof
value
===
"number"
)
{
value
+=
""
;
}
var
val
=
value
;
return
this
.
each
(
function
(
i
)
{
var
self
=
jQuery
(
this
),
val
=
value
;
return
this
.
each
(
function
()
{
if
(
this
.
nodeType
!==
1
)
{
if
(
jQuery
.
isFunction
(
value
)
)
{
return
;
val
=
value
.
call
(
this
);
}
if
(
isFunction
)
{
val
=
value
.
call
(
this
,
i
,
self
.
val
());
}
// Typecast each time if the value is a Function and the appended
// Typecast each time if the value is a Function and the appended
// value is therefore different each time.
// value is therefore different each time.
if
(
typeof
val
===
"number"
)
{
if
(
typeof
val
===
"number"
)
{
val
+=
""
;
val
+=
""
;
}
}
}
if
(
this
.
nodeType
!==
1
)
{
return
;
}
if
(
jQuery
.
isArray
(
val
)
&&
rradiocheck
.
test
(
this
.
type
)
)
{
if
(
jQuery
.
isArray
(
val
)
&&
rradiocheck
.
test
(
this
.
type
)
)
{
this
.
checked
=
jQuery
.
inArray
(
jQuery
(
this
)
.
val
(),
val
)
>=
0
;
this
.
checked
=
jQuery
.
inArray
(
self
.
val
(),
val
)
>=
0
;
}
else
if
(
jQuery
.
nodeName
(
this
,
"select"
)
)
{
}
else
if
(
jQuery
.
nodeName
(
this
,
"select"
)
)
{
var
values
=
jQuery
.
makeArray
(
val
);
var
values
=
jQuery
.
makeArray
(
val
);
...
@@ -185,50 +228,6 @@ jQuery.fn.extend({
...
@@ -185,50 +228,6 @@ jQuery.fn.extend({
}
}
});
});
jQuery
.
each
({
removeAttr
:
function
(
name
)
{
jQuery
.
attr
(
this
,
name
,
""
);
if
(
this
.
nodeType
===
1
)
{
this
.
removeAttribute
(
name
);
}
},
toggleClass
:
function
(
classNames
,
state
)
{
var
type
=
typeof
classNames
;
if
(
type
===
"string"
)
{
// toggle individual class names
var
isBool
=
typeof
state
===
"boolean"
,
className
,
i
=
0
,
classNames
=
classNames
.
split
(
rspace
);
while
(
(
className
=
classNames
[
i
++
])
)
{
// check each className given, space seperated list
state
=
isBool
?
state
:
!
jQuery
(
this
).
hasClass
(
className
);
jQuery
(
this
)[
state
?
"addClass"
:
"removeClass"
](
className
);
}
}
else
if
(
type
===
"undefined"
||
type
===
"boolean"
)
{
if
(
this
.
className
)
{
// store className if set
jQuery
.
data
(
this
,
"__className__"
,
this
.
className
);
}
// toggle whole className
this
.
className
=
this
.
className
||
classNames
===
false
?
""
:
jQuery
.
data
(
this
,
"__className__"
)
||
""
;
}
}
},
function
(
name
,
fn
)
{
jQuery
.
fn
[
name
]
=
function
(
val
,
state
)
{
if
(
jQuery
.
isFunction
(
val
)
)
{
return
this
.
each
(
function
()
{
jQuery
(
this
)[
name
](
val
.
call
(
this
),
state
);
});
}
return
this
.
each
(
fn
,
arguments
);
};
});
jQuery
.
extend
({
jQuery
.
extend
({
attrFn
:
{
attrFn
:
{
val
:
true
,
val
:
true
,
...
...
src/core.js
View file @
d6d5ed4c
...
@@ -775,7 +775,7 @@ function access( elems, key, value, exec, fn, pass ) {
...
@@ -775,7 +775,7 @@ function access( elems, key, value, exec, fn, pass ) {
exec
=
exec
&&
jQuery
.
isFunction
(
value
);
exec
=
exec
&&
jQuery
.
isFunction
(
value
);
for
(
var
i
=
0
;
i
<
length
;
i
++
)
{
for
(
var
i
=
0
;
i
<
length
;
i
++
)
{
fn
(
elems
[
i
],
key
,
exec
?
value
.
call
(
elems
[
i
],
i
)
:
value
,
pass
);
fn
(
elems
[
i
],
key
,
exec
?
value
.
call
(
elems
[
i
],
i
,
fn
(
elems
[
i
],
key
)
)
:
value
,
pass
);
}
}
return
elems
;
return
elems
;
...
...
src/manipulation.js
View file @
d6d5ed4c
...
@@ -33,8 +33,9 @@ if ( !jQuery.support.htmlSerialize ) {
...
@@ -33,8 +33,9 @@ if ( !jQuery.support.htmlSerialize ) {
jQuery
.
fn
.
extend
({
jQuery
.
fn
.
extend
({
text
:
function
(
text
)
{
text
:
function
(
text
)
{
if
(
jQuery
.
isFunction
(
text
)
)
{
if
(
jQuery
.
isFunction
(
text
)
)
{
return
this
.
each
(
function
()
{
return
this
.
each
(
function
(
i
)
{
return
jQuery
(
this
).
text
(
text
.
call
(
this
)
);
var
self
=
jQuery
(
this
);
return
self
.
text
(
text
.
call
(
this
,
i
,
self
.
text
())
);
});
});
}
}
...
@@ -47,8 +48,8 @@ jQuery.fn.extend({
...
@@ -47,8 +48,8 @@ jQuery.fn.extend({
wrapAll
:
function
(
html
)
{
wrapAll
:
function
(
html
)
{
if
(
jQuery
.
isFunction
(
html
)
)
{
if
(
jQuery
.
isFunction
(
html
)
)
{
return
this
.
each
(
function
()
{
return
this
.
each
(
function
(
i
)
{
jQuery
(
this
).
wrapAll
(
html
.
apply
(
this
,
arguments
)
);
jQuery
(
this
).
wrapAll
(
html
.
call
(
this
,
i
)
);
});
});
}
}
...
@@ -172,7 +173,7 @@ jQuery.fn.extend({
...
@@ -172,7 +173,7 @@ jQuery.fn.extend({
html
:
function
(
value
)
{
html
:
function
(
value
)
{
if
(
value
===
undefined
)
{
if
(
value
===
undefined
)
{
return
this
[
0
]
?
return
this
[
0
]
&&
this
[
0
].
nodeType
===
1
?
this
[
0
].
innerHTML
.
replace
(
rinlinejQuery
,
""
)
:
this
[
0
].
innerHTML
.
replace
(
rinlinejQuery
,
""
)
:
null
;
null
;
...
@@ -195,6 +196,14 @@ jQuery.fn.extend({
...
@@ -195,6 +196,14 @@ jQuery.fn.extend({
this
.
empty
().
append
(
value
);
this
.
empty
().
append
(
value
);
}
}
}
else
if
(
jQuery
.
isFunction
(
value
)
)
{
this
.
each
(
function
(
i
){
var
self
=
jQuery
(
this
),
old
=
self
.
html
();
self
.
empty
().
append
(
function
(){
return
value
.
call
(
this
,
i
,
old
);
});
});
}
else
{
}
else
{
this
.
empty
().
append
(
value
);
this
.
empty
().
append
(
value
);
}
}
...
@@ -228,9 +237,10 @@ jQuery.fn.extend({
...
@@ -228,9 +237,10 @@ jQuery.fn.extend({
var
results
,
first
,
value
=
args
[
0
],
scripts
=
[];
var
results
,
first
,
value
=
args
[
0
],
scripts
=
[];
if
(
jQuery
.
isFunction
(
value
)
)
{
if
(
jQuery
.
isFunction
(
value
)
)
{
return
this
.
each
(
function
()
{
return
this
.
each
(
function
(
i
)
{
args
[
0
]
=
value
.
call
(
this
);
var
self
=
jQuery
(
this
);
return
jQuery
(
this
).
domManip
(
args
,
table
,
callback
);
args
[
0
]
=
value
.
call
(
this
,
i
,
table
?
self
.
html
()
:
undefined
);
return
self
.
domManip
(
args
,
table
,
callback
);
});
});
}
}
...
...
src/offset.js
View file @
d6d5ed4c
...
@@ -7,8 +7,8 @@ if ( "getBoundingClientRect" in document.documentElement ) {
...
@@ -7,8 +7,8 @@ if ( "getBoundingClientRect" in document.documentElement ) {
}
}
if
(
options
)
{
if
(
options
)
{
return
this
.
each
(
function
()
{
return
this
.
each
(
function
(
i
)
{
jQuery
.
offset
.
setOffset
(
this
,
options
);
jQuery
.
offset
.
setOffset
(
this
,
options
,
i
);
});
});
}
}
...
@@ -33,8 +33,8 @@ if ( "getBoundingClientRect" in document.documentElement ) {
...
@@ -33,8 +33,8 @@ if ( "getBoundingClientRect" in document.documentElement ) {
}
}
if
(
options
)
{
if
(
options
)
{
return
this
.
each
(
function
()
{
return
this
.
each
(
function
(
i
)
{
jQuery
.
offset
.
setOffset
(
this
,
options
);
jQuery
.
offset
.
setOffset
(
this
,
options
,
i
);
});
});
}
}
...
@@ -137,7 +137,7 @@ jQuery.offset = {
...
@@ -137,7 +137,7 @@ jQuery.offset = {
return
{
top
:
top
,
left
:
left
};
return
{
top
:
top
,
left
:
left
};
},
},
setOffset
:
function
(
elem
,
options
)
{
setOffset
:
function
(
elem
,
options
,
i
)
{
// set position first, in-case top/left are set even on static elem
// set position first, in-case top/left are set even on static elem
if
(
/static/
.
test
(
jQuery
.
curCSS
(
elem
,
"position"
)
)
)
{
if
(
/static/
.
test
(
jQuery
.
curCSS
(
elem
,
"position"
)
)
)
{
elem
.
style
.
position
=
"relative"
;
elem
.
style
.
position
=
"relative"
;
...
@@ -145,8 +145,13 @@ jQuery.offset = {
...
@@ -145,8 +145,13 @@ jQuery.offset = {
var
curElem
=
jQuery
(
elem
),
var
curElem
=
jQuery
(
elem
),
curOffset
=
curElem
.
offset
(),
curOffset
=
curElem
.
offset
(),
curTop
=
parseInt
(
jQuery
.
curCSS
(
elem
,
"top"
,
true
),
10
)
||
0
,
curTop
=
parseInt
(
jQuery
.
curCSS
(
elem
,
"top"
,
true
),
10
)
||
0
,
curLeft
=
parseInt
(
jQuery
.
curCSS
(
elem
,
"left"
,
true
),
10
)
||
0
,
curLeft
=
parseInt
(
jQuery
.
curCSS
(
elem
,
"left"
,
true
),
10
)
||
0
;
props
=
{
if
(
jQuery
.
isFunction
(
options
)
)
{
options
=
options
.
call
(
elem
,
i
,
curOffset
);
}
var
props
=
{
top
:
(
options
.
top
-
curOffset
.
top
)
+
curTop
,
top
:
(
options
.
top
-
curOffset
.
top
)
+
curTop
,
left
:
(
options
.
left
-
curOffset
.
left
)
+
curLeft
left
:
(
options
.
left
-
curOffset
.
left
)
+
curLeft
};
};
...
...
test/unit/attributes.js
View file @
d6d5ed4c
...
@@ -292,6 +292,148 @@ test("attr('tabindex', value)", function() {
...
@@ -292,6 +292,148 @@ test("attr('tabindex', value)", function() {
equals
(
element
.
attr
(
'tabindex'
),
-
1
,
'set negative tabindex'
);
equals
(
element
.
attr
(
'tabindex'
),
-
1
,
'set negative tabindex'
);
});
});
test
(
"removeAttr(String)"
,
function
()
{
expect
(
1
);
equals
(
jQuery
(
'#mark'
).
removeAttr
(
"class"
)[
0
].
className
,
""
,
"remove class"
);
});
test
(
"val()"
,
function
()
{
expect
(
17
);
document
.
getElementById
(
'text1'
).
value
=
"bla"
;
equals
(
jQuery
(
"#text1"
).
val
(),
"bla"
,
"Check for modified value of input element"
);
reset
();
equals
(
jQuery
(
"#text1"
).
val
(),
"Test"
,
"Check for value of input element"
);
// ticket #1714 this caused a JS error in IE
equals
(
jQuery
(
"#first"
).
val
(),
""
,
"Check a paragraph element to see if it has a value"
);
ok
(
jQuery
([]).
val
()
===
undefined
,
"Check an empty jQuery object will return undefined from val"
);
equals
(
jQuery
(
'#select2'
).
val
(),
'3'
,
'Call val() on a single="single" select'
);
same
(
jQuery
(
'#select3'
).
val
(),
[
'1'
,
'2'
],
'Call val() on a multiple="multiple" select'
);
equals
(
jQuery
(
'#option3c'
).
val
(),
'2'
,
'Call val() on a option element with value'
);
equals
(
jQuery
(
'#option3a'
).
val
(),
''
,
'Call val() on a option element with empty value'
);
equals
(
jQuery
(
'#option3e'
).
val
(),
'no value'
,
'Call val() on a option element with no value attribute'
);
equals
(
jQuery
(
'#option3a'
).
val
(),
''
,
'Call val() on a option element with no value attribute'
);
jQuery
(
'#select3'
).
val
(
""
);
same
(
jQuery
(
'#select3'
).
val
(),
[
''
],
'Call val() on a multiple="multiple" select'
);
var
checks
=
jQuery
(
"<input type='checkbox' name='test' value='1'/>"
).
appendTo
(
"#form"
)
.
add
(
jQuery
(
"<input type='checkbox' name='test' value='2'/>"
).
appendTo
(
"#form"
)
)
.
add
(
jQuery
(
"<input type='checkbox' name='test' value=''/>"
).
appendTo
(
"#form"
)
)
.
add
(
jQuery
(
"<input type='checkbox' name='test'/>"
).
appendTo
(
"#form"
)
);
same
(
checks
.
serialize
(),
""
,
"Get unchecked values."
);
equals
(
checks
.
eq
(
3
).
val
(),
"on"
,
"Make sure a value of 'on' is provided if none is specified."
);
checks
.
val
([
"2"
]);
same
(
checks
.
serialize
(),
"test=2"
,
"Get a single checked value."
);
checks
.
val
([
"1"
,
""
]);
same
(
checks
.
serialize
(),
"test=1&test="
,
"Get multiple checked values."
);
checks
.
val
([
""
,
"2"
]);
same
(
checks
.
serialize
(),
"test=2&test="
,
"Get multiple checked values."
);
checks
.
val
([
"1"
,
"on"
]);
same
(
checks
.
serialize
(),
"test=1&test=on"
,
"Get multiple checked values."
);
checks
.
remove
();
});
var
testVal
=
function
(
valueObj
)
{
expect
(
6
);
jQuery
(
"#text1"
).
val
(
valueObj
(
'test'
));
equals
(
document
.
getElementById
(
'text1'
).
value
,
"test"
,
"Check for modified (via val(String)) value of input element"
);
jQuery
(
"#text1"
).
val
(
valueObj
(
67
));
equals
(
document
.
getElementById
(
'text1'
).
value
,
"67"
,
"Check for modified (via val(Number)) value of input element"
);
jQuery
(
"#select1"
).
val
(
valueObj
(
"3"
));
equals
(
jQuery
(
"#select1"
).
val
(),
"3"
,
"Check for modified (via val(String)) value of select element"
);
jQuery
(
"#select1"
).
val
(
valueObj
(
2
));
equals
(
jQuery
(
"#select1"
).
val
(),
"2"
,
"Check for modified (via val(Number)) value of select element"
);
jQuery
(
"#select1"
).
append
(
"<option value='4'>four</option>"
);
jQuery
(
"#select1"
).
val
(
valueObj
(
4
));
equals
(
jQuery
(
"#select1"
).
val
(),
"4"
,
"Should be possible to set the val() to a newly created option"
);
// using contents will get comments regular, text, and comment nodes
var
j
=
jQuery
(
"#nonnodes"
).
contents
();
j
.
val
(
valueObj
(
"asdf"
));
equals
(
j
.
val
(),
"asdf"
,
"Check node,textnode,comment with val()"
);
j
.
removeAttr
(
"value"
);
}
test
(
"val(String/Number)"
,
function
()
{
testVal
(
bareObj
);
});
test
(
"val(Function)"
,
function
()
{
testVal
(
functionReturningObj
);
})
test
(
"val(Function) with incoming value"
,
function
()
{
expect
(
10
);
var
oldVal
=
jQuery
(
"#text1"
).
val
();
jQuery
(
"#text1"
).
val
(
function
(
i
,
val
)
{
equals
(
val
,
oldVal
,
"Make sure the incoming value is correct."
);
return
"test"
;
});
equals
(
document
.
getElementById
(
'text1'
).
value
,
"test"
,
"Check for modified (via val(String)) value of input element"
);
oldVal
=
jQuery
(
"#text1"
).
val
();
jQuery
(
"#text1"
).
val
(
function
(
i
,
val
)
{
equals
(
val
,
oldVal
,
"Make sure the incoming value is correct."
);
return
67
;
});
equals
(
document
.
getElementById
(
'text1'
).
value
,
"67"
,
"Check for modified (via val(Number)) value of input element"
);
oldVal
=
jQuery
(
"#select1"
).
val
();
jQuery
(
"#select1"
).
val
(
function
(
i
,
val
)
{
equals
(
val
,
oldVal
,
"Make sure the incoming value is correct."
);
return
"3"
;
});
equals
(
jQuery
(
"#select1"
).
val
(),
"3"
,
"Check for modified (via val(String)) value of select element"
);
oldVal
=
jQuery
(
"#select1"
).
val
();
jQuery
(
"#select1"
).
val
(
function
(
i
,
val
)
{
equals
(
val
,
oldVal
,
"Make sure the incoming value is correct."
);
return
2
;
});
equals
(
jQuery
(
"#select1"
).
val
(),
"2"
,
"Check for modified (via val(Number)) value of select element"
);
jQuery
(
"#select1"
).
append
(
"<option value='4'>four</option>"
);
oldVal
=
jQuery
(
"#select1"
).
val
();
jQuery
(
"#select1"
).
val
(
function
(
i
,
val
)
{
equals
(
val
,
oldVal
,
"Make sure the incoming value is correct."
);
return
4
;
});
equals
(
jQuery
(
"#select1"
).
val
(),
"4"
,
"Should be possible to set the val() to a newly created option"
);
});
var
testAddClass
=
function
(
valueObj
)
{
var
testAddClass
=
function
(
valueObj
)
{
expect
(
2
);
expect
(
2
);
var
div
=
jQuery
(
"div"
);
var
div
=
jQuery
(
"div"
);
...
@@ -316,6 +458,25 @@ test("addClass(Function)", function() {
...
@@ -316,6 +458,25 @@ test("addClass(Function)", function() {
testAddClass
(
functionReturningObj
);
testAddClass
(
functionReturningObj
);
});
});
test
(
"addClass(Function) with incoming value"
,
function
()
{
expect
(
39
);
var
div
=
jQuery
(
"div"
),
old
=
div
.
map
(
function
(){
return
jQuery
(
this
).
attr
(
"class"
);
});
div
.
addClass
(
function
(
i
,
val
)
{
equals
(
val
,
old
[
i
],
"Make sure the incoming value is correct."
);
return
"test"
;
});
var
pass
=
true
;
for
(
var
i
=
0
;
i
<
div
.
size
();
i
++
)
{
if
(
div
.
get
(
i
).
className
.
indexOf
(
"test"
)
==
-
1
)
pass
=
false
;
}
ok
(
pass
,
"Add Class"
);
});
var
testRemoveClass
=
function
(
valueObj
)
{
var
testRemoveClass
=
function
(
valueObj
)
{
expect
(
5
);
expect
(
5
);
...
@@ -357,6 +518,23 @@ test("removeClass(Function) - simple", function() {
...
@@ -357,6 +518,23 @@ test("removeClass(Function) - simple", function() {
testRemoveClass
(
functionReturningObj
);
testRemoveClass
(
functionReturningObj
);
});
});
test
(
"removeClass(Function) with incoming value"
,
function
()
{
expect
(
39
);
var
$divs
=
jQuery
(
'div'
).
addClass
(
"test"
),
old
=
$divs
.
map
(
function
(){
return
jQuery
(
this
).
attr
(
"class"
);
});
$divs
.
removeClass
(
function
(
i
,
val
)
{
equals
(
val
,
old
[
i
],
"Make sure the incoming value is correct."
);
return
"test"
;
});
ok
(
!
$divs
.
is
(
'.test'
),
"Remove Class"
);
reset
();
});
var
testToggleClass
=
function
(
valueObj
)
{
var
testToggleClass
=
function
(
valueObj
)
{
expect
(
17
);
expect
(
17
);
...
@@ -417,17 +595,57 @@ test("toggleClass(Function[, boolean])", function() {
...
@@ -417,17 +595,57 @@ test("toggleClass(Function[, boolean])", function() {
testToggleClass
(
functionReturningObj
);
testToggleClass
(
functionReturningObj
);
});
});
var
testRemoveAttr
=
function
(
valueObj
)
{
test
(
"toggleClass(Fucntion[, boolean]) with incoming value"
,
function
()
{
expect
(
1
);
expect
(
14
);
equals
(
jQuery
(
'#mark'
).
removeAttr
(
valueObj
(
"class"
)
)[
0
].
className
,
""
,
"remove class"
);
};
test
(
"removeAttr(String)"
,
function
()
{
var
e
=
jQuery
(
"#firstp"
),
old
=
e
.
attr
(
"class"
);
testRemoveAttr
(
bareObj
);
ok
(
!
e
.
is
(
".test"
),
"Assert class not present"
);
});
e
.
toggleClass
(
function
(
i
,
val
)
{
equals
(
val
,
old
,
"Make sure the incoming value is correct."
);
return
"test"
;
});
ok
(
e
.
is
(
".test"
),
"Assert class present"
);
test
(
"removeAttr(Function)"
,
function
()
{
old
=
e
.
attr
(
"class"
);
testRemoveAttr
(
functionReturningObj
);
e
.
toggleClass
(
function
(
i
,
val
)
{
equals
(
val
,
old
,
"Make sure the incoming value is correct."
);
return
"test"
;
});
ok
(
!
e
.
is
(
".test"
),
"Assert class not present"
);
old
=
e
.
attr
(
"class"
);
// class name with a boolean
e
.
toggleClass
(
function
(
i
,
val
,
state
)
{
equals
(
val
,
old
,
"Make sure the incoming value is correct."
);
equals
(
state
,
false
,
"Make sure that the state is passed in."
);
return
"test"
;
},
false
);
ok
(
!
e
.
is
(
".test"
),
"Assert class not present"
);
old
=
e
.
attr
(
"class"
);
e
.
toggleClass
(
function
(
i
,
val
,
state
)
{
equals
(
val
,
old
,
"Make sure the incoming value is correct."
);
equals
(
state
,
true
,
"Make sure that the state is passed in."
);
return
"test"
;
},
true
);
ok
(
e
.
is
(
".test"
),
"Assert class present"
);
old
=
e
.
attr
(
"class"
);
e
.
toggleClass
(
function
(
i
,
val
,
state
)
{
equals
(
val
,
old
,
"Make sure the incoming value is correct."
);
equals
(
state
,
false
,
"Make sure that the state is passed in."
);
return
"test"
;
},
false
);
ok
(
!
e
.
is
(
".test"
),
"Assert class not present"
);
// Cleanup
e
.
removeClass
(
"test"
);
e
.
removeData
(
'__className__'
);
});
});
test
(
"addClass, removeClass, hasClass"
,
function
()
{
test
(
"addClass, removeClass, hasClass"
,
function
()
{
...
...
test/unit/css.js
View file @
d6d5ed4c
...
@@ -120,7 +120,6 @@ if(jQuery.browser.msie) {
...
@@ -120,7 +120,6 @@ if(jQuery.browser.msie) {
}
}
test
(
"css(String, Function)"
,
function
()
{
test
(
"css(String, Function)"
,
function
()
{
try
{
expect
(
3
);
expect
(
3
);
var
sizes
=
[
"10px"
,
"20px"
,
"30px"
];
var
sizes
=
[
"10px"
,
"20px"
,
"30px"
];
...
@@ -147,13 +146,40 @@ test("css(String, Function)", function() {
...
@@ -147,13 +146,40 @@ test("css(String, Function)", function() {
index
++
;
index
++
;
});
});
}
finally
{
jQuery
(
"#cssFunctionTest"
).
remove
();
jQuery
(
"#cssFunctionTest"
).
remove
();
}
});
test
(
"css(String, Function) with incoming value"
,
function
()
{
expect
(
3
);
var
sizes
=
[
"10px"
,
"20px"
,
"30px"
];
jQuery
(
"<div id='cssFunctionTest'><div class='cssFunction'></div>"
+
"<div class='cssFunction'></div>"
+
"<div class='cssFunction'></div></div>"
)
.
appendTo
(
"body"
);
var
index
=
0
;
jQuery
(
"#cssFunctionTest div"
).
css
(
"font-size"
,
function
()
{
var
size
=
sizes
[
index
];
index
++
;
return
size
;
});
index
=
0
;
jQuery
(
"#cssFunctionTest div"
).
css
(
"font-size"
,
function
(
i
,
computedSize
)
{
var
expectedSize
=
sizes
[
index
]
equals
(
computedSize
,
expectedSize
,
"Div #"
+
index
+
" should be "
+
expectedSize
);
index
++
;
return
computedSize
;
});
jQuery
(
"#cssFunctionTest"
).
remove
();
});
});
test
(
"css(Object) where values are Functions"
,
function
()
{
test
(
"css(Object) where values are Functions"
,
function
()
{
try
{
expect
(
3
);
expect
(
3
);
var
sizes
=
[
"10px"
,
"20px"
,
"30px"
];
var
sizes
=
[
"10px"
,
"20px"
,
"30px"
];
...
@@ -180,9 +206,37 @@ test("css(Object) where values are Functions", function() {
...
@@ -180,9 +206,37 @@ test("css(Object) where values are Functions", function() {
index
++
;
index
++
;
});
});
}
finally
{
jQuery
(
"#cssFunctionTest"
).
remove
();
jQuery
(
"#cssFunctionTest"
).
remove
();
}
});
test
(
"css(Object) where values are Functions with incoming values"
,
function
()
{
expect
(
3
);
var
sizes
=
[
"10px"
,
"20px"
,
"30px"
];
jQuery
(
"<div id='cssFunctionTest'><div class='cssFunction'></div>"
+
"<div class='cssFunction'></div>"
+
"<div class='cssFunction'></div></div>"
)
.
appendTo
(
"body"
);
var
index
=
0
;
jQuery
(
"#cssFunctionTest div"
).
css
({
fontSize
:
function
()
{
var
size
=
sizes
[
index
];
index
++
;
return
size
;
}});
index
=
0
;
jQuery
(
"#cssFunctionTest div"
).
css
({
"font-size"
:
function
(
i
,
computedSize
)
{
var
expectedSize
=
sizes
[
index
]
equals
(
computedSize
,
expectedSize
,
"Div #"
+
index
+
" should be "
+
expectedSize
);
index
++
;
return
computedSize
;
}});
jQuery
(
"#cssFunctionTest"
).
remove
();
});
});
test
(
"jQuery.css(elem, 'height') doesn't clear radio buttons (bug #1095)"
,
function
()
{
test
(
"jQuery.css(elem, 'height') doesn't clear radio buttons (bug #1095)"
,
function
()
{
...
...
test/unit/manipulation.js
View file @
d6d5ed4c
This diff is collapsed.
Click to expand it.
test/unit/offset.js
View file @
d6d5ed4c
module
(
"offset"
);
module
(
"offset"
);
testoffset
(
"absolute"
,
function
(
jQuery
)
{
testoffset
(
"absolute"
,
function
(
jQuery
)
{
expect
(
144
);
// get offset tests
// get offset tests
var
tests
=
[
var
tests
=
[
{
id
:
'#absolute-1'
,
top
:
1
,
left
:
1
},
{
id
:
'#absolute-1'
,
top
:
1
,
left
:
1
},
...
@@ -51,6 +53,16 @@ testoffset("absolute", function( jQuery ) {
...
@@ -51,6 +53,16 @@ testoffset("absolute", function( jQuery ) {
equals
(
jQuery
(
this
.
id
).
offset
().
top
,
this
.
top
,
"jQuery('"
+
this
.
id
+
"').offset({ top: "
+
this
.
top
+
" })"
);
equals
(
jQuery
(
this
.
id
).
offset
().
top
,
this
.
top
,
"jQuery('"
+
this
.
id
+
"').offset({ top: "
+
this
.
top
+
" })"
);
equals
(
jQuery
(
this
.
id
).
offset
().
left
,
this
.
left
,
"jQuery('"
+
this
.
id
+
"').offset({ left: "
+
this
.
left
+
" })"
);
equals
(
jQuery
(
this
.
id
).
offset
().
left
,
this
.
left
,
"jQuery('"
+
this
.
id
+
"').offset({ left: "
+
this
.
left
+
" })"
);
var
top
=
this
.
top
,
left
=
this
.
left
;
jQuery
(
this
.
id
).
offset
(
function
(
i
,
val
){
equals
(
val
.
top
,
top
,
"Verify incoming top position."
);
equals
(
val
.
left
,
left
,
"Verify incoming top position."
);
return
{
top
:
top
+
1
,
left
:
left
+
1
};
});
equals
(
jQuery
(
this
.
id
).
offset
().
top
,
this
.
top
+
1
,
"jQuery('"
+
this
.
id
+
"').offset({ top: "
+
this
.
top
+
" })"
);
equals
(
jQuery
(
this
.
id
).
offset
().
left
,
this
.
left
+
1
,
"jQuery('"
+
this
.
id
+
"').offset({ left: "
+
this
.
left
+
" })"
);
jQuery
(
this
.
id
).
offset
({
top
:
this
.
top
,
left
:
this
.
left
,
using
:
function
(
props
)
{
jQuery
(
this
.
id
).
offset
({
top
:
this
.
top
,
left
:
this
.
left
,
using
:
function
(
props
)
{
jQuery
(
this
).
css
({
jQuery
(
this
).
css
({
top
:
props
.
top
+
1
,
top
:
props
.
top
+
1
,
...
@@ -63,6 +75,8 @@ testoffset("absolute", function( jQuery ) {
...
@@ -63,6 +75,8 @@ testoffset("absolute", function( jQuery ) {
});
});
testoffset
(
"relative"
,
function
(
jQuery
)
{
testoffset
(
"relative"
,
function
(
jQuery
)
{
expect
(
60
);
// IE is collapsing the top margin of 1px
// IE is collapsing the top margin of 1px
var
ie
=
jQuery
.
browser
.
msie
&&
parseInt
(
jQuery
.
browser
.
version
)
<
8
;
var
ie
=
jQuery
.
browser
.
msie
&&
parseInt
(
jQuery
.
browser
.
version
)
<
8
;
...
@@ -122,6 +136,8 @@ testoffset("relative", function( jQuery ) {
...
@@ -122,6 +136,8 @@ testoffset("relative", function( jQuery ) {
});
});
testoffset
(
"static"
,
function
(
jQuery
)
{
testoffset
(
"static"
,
function
(
jQuery
)
{
expect
(
80
);
// IE is collapsing the top margin of 1px
// IE is collapsing the top margin of 1px
var
ie
=
jQuery
.
browser
.
msie
&&
parseInt
(
jQuery
.
browser
.
version
)
<
8
;
var
ie
=
jQuery
.
browser
.
msie
&&
parseInt
(
jQuery
.
browser
.
version
)
<
8
;
...
@@ -187,6 +203,8 @@ testoffset("static", function( jQuery ) {
...
@@ -187,6 +203,8 @@ testoffset("static", function( jQuery ) {
});
});
testoffset
(
"fixed"
,
function
(
jQuery
)
{
testoffset
(
"fixed"
,
function
(
jQuery
)
{
expect
(
28
);
jQuery
.
offset
.
initialize
();
jQuery
.
offset
.
initialize
();
var
tests
=
[
var
tests
=
[
...
@@ -238,31 +256,18 @@ testoffset("fixed", function( jQuery ) {
...
@@ -238,31 +256,18 @@ testoffset("fixed", function( jQuery ) {
});
});
testoffset
(
"table"
,
function
(
jQuery
)
{
testoffset
(
"table"
,
function
(
jQuery
)
{
var
ie
=
jQuery
.
browser
.
msie
;
expect
(
4
)
;
equals
(
jQuery
(
'#table-1'
).
offset
().
top
,
6
,
"jQuery('#table-1').offset().top"
);
equals
(
jQuery
(
'#table-1'
).
offset
().
top
,
6
,
"jQuery('#table-1').offset().top"
);
equals
(
jQuery
(
'#table-1'
).
offset
().
left
,
6
,
"jQuery('#table-1').offset().left"
);
equals
(
jQuery
(
'#table-1'
).
offset
().
left
,
6
,
"jQuery('#table-1').offset().left"
);
equals
(
jQuery
(
'#th-1'
).
offset
().
top
,
10
,
"jQuery('#th-1').offset().top"
);
equals
(
jQuery
(
'#th-1'
).
offset
().
top
,
10
,
"jQuery('#th-1').offset().top"
);
equals
(
jQuery
(
'#th-1'
).
offset
().
left
,
10
,
"jQuery('#th-1').offset().left"
);
equals
(
jQuery
(
'#th-1'
).
offset
().
left
,
10
,
"jQuery('#th-1').offset().left"
);
// equals( jQuery('#th-2').offset().top, 10, "jQuery('#th-2').offset().top" );
// equals( jQuery('#th-2').offset().left, 116, "jQuery('#th-2').offset().left" );
//
// equals( jQuery('#th-3').offset().top, 10, "jQuery('#th-3').offset().top" );
// equals( jQuery('#th-3').offset().left, 222, "jQuery('#th-3').offset().left" );
// equals( jQuery('#td-1').offset().top, ie ? 116 : 112, "jQuery('#td-1').offset().top" );
// equals( jQuery('#td-1').offset().left, 10, "jQuery('#td-1').offset().left" );
//
// equals( jQuery('#td-2').offset().top, ie ? 116 : 112, "jQuery('#td-2').offset().top" );
// equals( jQuery('#td-2').offset().left, 116, "jQuery('#td-2').offset().left" );
//
// equals( jQuery('#td-3').offset().top, ie ? 116 : 112, "jQuery('#td-3').offset().top" );
// equals( jQuery('#td-3').offset().left, 222, "jQuery('#td-3').offset().left" );
});
});
testoffset
(
"scroll"
,
function
(
jQuery
,
win
)
{
testoffset
(
"scroll"
,
function
(
jQuery
,
win
)
{
expect
(
12
);
var
ie
=
jQuery
.
browser
.
msie
&&
parseInt
(
jQuery
.
browser
.
version
)
<
8
;
var
ie
=
jQuery
.
browser
.
msie
&&
parseInt
(
jQuery
.
browser
.
version
)
<
8
;
// IE is collapsing the top margin of 1px
// IE is collapsing the top margin of 1px
...
@@ -294,6 +299,8 @@ testoffset("scroll", function( jQuery, win ) {
...
@@ -294,6 +299,8 @@ testoffset("scroll", function( jQuery, win ) {
});
});
testoffset
(
"body"
,
function
(
jQuery
)
{
testoffset
(
"body"
,
function
(
jQuery
)
{
expect
(
2
);
equals
(
jQuery
(
'body'
).
offset
().
top
,
1
,
"jQuery('#body').offset().top"
);
equals
(
jQuery
(
'body'
).
offset
().
top
,
1
,
"jQuery('#body').offset().top"
);
equals
(
jQuery
(
'body'
).
offset
().
left
,
1
,
"jQuery('#body').offset().left"
);
equals
(
jQuery
(
'body'
).
offset
().
left
,
1
,
"jQuery('#body').offset().left"
);
});
});
...
...
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