Merge branch 'classed' of https://github.com/jasondavies/d3 into release
This commit is contained in:
Коммит
9e303516f0
|
@ -1333,6 +1333,21 @@ d3_selectionPrototype.attr = function(name, value) {
|
|||
: (name.local ? attrConstantNS : attrConstant)));
|
||||
};
|
||||
d3_selectionPrototype.classed = function(name, value) {
|
||||
var names = name.split(d3_selection_classedWhitespace),
|
||||
n = names.length,
|
||||
i = -1;
|
||||
if (arguments.length > 1) {
|
||||
while (++i < n) d3_selection_classed.call(this, names[i], value);
|
||||
return this;
|
||||
} else {
|
||||
while (++i < n) if (!d3_selection_classed.call(this, names[i])) return false;
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
var d3_selection_classedWhitespace = /\s+/g;
|
||||
|
||||
function d3_selection_classed(name, value) {
|
||||
var re = new RegExp("(^|\\s+)" + d3.requote(name) + "(\\s+|$)", "g");
|
||||
|
||||
// If no value is specified, return the first value.
|
||||
|
@ -1377,7 +1392,7 @@ d3_selectionPrototype.classed = function(name, value) {
|
|||
? classedFunction : value
|
||||
? classedAdd
|
||||
: classedRemove);
|
||||
};
|
||||
}
|
||||
d3_selectionPrototype.style = function(name, value, priority) {
|
||||
if (arguments.length < 3) priority = "";
|
||||
|
||||
|
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -1,4 +1,19 @@
|
|||
d3_selectionPrototype.classed = function(name, value) {
|
||||
var names = name.split(d3_selection_classedWhitespace),
|
||||
n = names.length,
|
||||
i = -1;
|
||||
if (arguments.length > 1) {
|
||||
while (++i < n) d3_selection_classed.call(this, names[i], value);
|
||||
return this;
|
||||
} else {
|
||||
while (++i < n) if (!d3_selection_classed.call(this, names[i])) return false;
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
var d3_selection_classedWhitespace = /\s+/g;
|
||||
|
||||
function d3_selection_classed(name, value) {
|
||||
var re = new RegExp("(^|\\s+)" + d3.requote(name) + "(\\s+|$)", "g");
|
||||
|
||||
// If no value is specified, return the first value.
|
||||
|
@ -43,4 +58,4 @@ d3_selectionPrototype.classed = function(name, value) {
|
|||
? classedFunction : value
|
||||
? classedAdd
|
||||
: classedRemove);
|
||||
};
|
||||
}
|
||||
|
|
|
@ -83,6 +83,25 @@ suite.addBatch({
|
|||
},
|
||||
"returns the current selection": function(body) {
|
||||
assert.isTrue(body.classed("foo", true) === body);
|
||||
},
|
||||
"adds missing classes as true": function(body) {
|
||||
body.attr("class", null);
|
||||
body.classed("foo bar", true);
|
||||
assert.equal(document.body.className, "foo bar");
|
||||
},
|
||||
"gets existing classes": function(body) {
|
||||
body.attr("class", " foo\tbar baz");
|
||||
assert.isTrue(body.classed("foo"));
|
||||
assert.isTrue(body.classed("foo bar"));
|
||||
assert.isTrue(body.classed("bar baz"));
|
||||
assert.isTrue(body.classed("foo bar baz"));
|
||||
},
|
||||
"does not get missing classes": function(body) {
|
||||
body.attr("class", " foo\tbar baz");
|
||||
assert.isFalse(body.classed("foob"));
|
||||
assert.isFalse(body.classed("foob bar"));
|
||||
assert.isFalse(body.classed("bar baz blah"));
|
||||
assert.isFalse(body.classed("foo bar baz moo"));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
Загрузка…
Ссылка в новой задаче