beautify 1st part of the tutorial

This commit is contained in:
Ilya Kantor 2015-03-10 12:36:58 +03:00
parent e3dd2cedc0
commit 6444024a9d
327 changed files with 2358 additions and 1986 deletions

View file

@ -4,8 +4,8 @@
//+ run
function removeClass(obj, cls) {
var classes = obj.className.split(' ');
for(i=0; i<classes.length; i++) {
for (i = 0; i < classes.length; i++) {
if (classes[i] == cls) {
classes.splice(i, 1); // удалить класс
*!*
@ -14,14 +14,16 @@ function removeClass(obj, cls) {
}
}
obj.className = classes.join(' ');
}
var obj = { className: 'open menu menu' }
var obj = {
className: 'open menu menu'
}
removeClass(obj, 'blabla');
removeClass(obj, 'blabla');
removeClass(obj, 'menu')
alert(obj.className) // open
alert(obj.className) // open
```
В примере выше есть тонкий момент. Элементы массива проверяются один за другим. При вызове `splice` удаляется текущий, `i-й` элемент, и те элементы, которые идут дальше, сдвигаются на его место.

View file

@ -5,7 +5,7 @@
У объекта есть свойство `className`, которое хранит список "классов" - слов, разделенных пробелами:
```js
var obj = {
var obj = {
className: 'open menu'
};
```
@ -20,9 +20,11 @@ removeClass(obj, 'blabla'); // без изменений (нет такого к
P.S. Дополнительное усложнение. Функция должна корректно обрабатывать дублирование класса в строке:
```js
obj = { className: 'my menu menu' };
obj = {
className: 'my menu menu'
};
removeClass(obj, 'menu');
alert(obj.className); // 'my'
alert( obj.className ); // 'my'
```
Лишних пробелов после функции образовываться не должно.