Better fix for classed operator. Fixes #78.

This commit is contained in:
Jason Davies 2011-05-03 17:17:03 +01:00
Родитель 1578595a18
Коммит 7ab5e3567f
3 изменённых файлов: 26 добавлений и 12 удалений

17
d3.js поставляемый
Просмотреть файл

@ -1306,23 +1306,30 @@ function d3_selection(groups) {
if (arguments.length < 2) {
return first(function() {
re.lastIndex = 0;
return re.test(this.className);
return re.test(this.className.baseVal != null
? this.className.baseVal : this.className);
});
}
/** @this {Element} */
function classedAdd() {
var classes = this.className;
var isAnimatedString = this.className.baseVal != null,
classes = isAnimatedString ? this.className.baseVal : this.className;
re.lastIndex = 0;
if (!re.test(classes)) {
this.className = d3_collapse(classes + " " + name);
classes = d3_collapse(classes + " " + name);
if (isAnimatedString) this.className.baseVal = classes;
else this.className = classes;
}
}
/** @this {Element} */
function classedRemove() {
var classes = d3_collapse(this.className.toString().replace(re, " "));
this.className = classes.length ? classes : null;
var isAnimatedString = this.className.baseVal != null,
classes = isAnimatedString ? this.className.baseVal : this.className;
classes = d3_collapse(classes.replace(re, " "));
if (isAnimatedString) this.className.baseVal = classes;
else this.className = classes.length ? classes : null;
}
/** @this {Element} */

4
d3.min.js поставляемый

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Просмотреть файл

@ -306,23 +306,30 @@ function d3_selection(groups) {
if (arguments.length < 2) {
return first(function() {
re.lastIndex = 0;
return re.test(this.className);
return re.test(this.className.baseVal != null
? this.className.baseVal : this.className);
});
}
/** @this {Element} */
function classedAdd() {
var classes = this.className;
var isAnimatedString = this.className.baseVal != null,
classes = isAnimatedString ? this.className.baseVal : this.className;
re.lastIndex = 0;
if (!re.test(classes)) {
this.className = d3_collapse(classes + " " + name);
classes = d3_collapse(classes + " " + name);
if (isAnimatedString) this.className.baseVal = classes;
else this.className = classes;
}
}
/** @this {Element} */
function classedRemove() {
var classes = d3_collapse(this.className.toString().replace(re, " "));
this.className = classes.length ? classes : null;
var isAnimatedString = this.className.baseVal != null,
classes = isAnimatedString ? this.className.baseVal : this.className;
classes = d3_collapse(classes.replace(re, " "));
if (isAnimatedString) this.className.baseVal = classes;
else this.className = classes.length ? classes : null;
}
/** @this {Element} */