Side navigation
#10874 closed bug (duplicate)
Opened November 23, 2011 01:51PM UTC
Closed November 23, 2011 02:24PM UTC
Last modified November 23, 2011 02:24PM UTC
Undefined second parameters triggers getter instead of setter
| Reported by: | MrMamen | Owned by: | |
|---|---|---|---|
| Priority: | undecided | Milestone: | None |
| Component: | unfiled | Version: | 1.7.1 |
| Keywords: | Cc: | ||
| Blocked by: | Blocking: |
Description
Consider the following function:
function f(bar) {
var $div = $("<div />").data("foo", bar);
}
The $div variable should be the DOM object, since data with two parameters is a setter and returns itself. However if the function f is called without a parameter, "bar" is undefined, and data triggers get method, and returns undefined instead.
See jsFiddle here:
http://jsfiddle.net/mrmamen/3Xqk7/
This applies not only to data, but also to attr, css, and probably most if not all of jQuerys methods with have setter and getter.
Note:
You can detect the difference between these:
test(foo) and
test(foo, undefined)
be checking arguments.length.