Какие замечания можете привести по представленным функциям
function hasClass(node, cls) {
return node.className != '' ? (' ' + node.className + ' ').indexOf(' ' + cls + ' ') > -1 : false;
}
function addClass(node, cls) {
if (!hasClass(node, cls)) {
node.className = node.className.trim() + ' ' + cls;
return true;
}
return false;
}
function removeClass(node, cls) {
if (hasClass(node, cls)) {
node.className = ((' ' + node.className + ' ').replace(' ' + cls + ' ', ' ')).trim();
return true;
}
return false;
}
|
Например первое можно переписать так:
function hasClass(node, cls) {
return !node.className ? false : (' ' + node.className + ' ').indexOf(' ' + cls + ' ') > -1;
}
|
Для hasClass
если класс у элемента всего один => "superClass", то hasClass не найдет в нем вхождение ' ' + cls + ' '. Нужно проверять из скольки слов состоит класс. Даже если он состоит из трех - надо учесть, что он может быть слева или справа. Yeah? |
Цитата:
|
Блин! Втупил, ты ведь для этого и прибавил по пробелу слева и справа... Извини.
|
Для addClass не вижу смысла тримить node.className.trim(), потому что во первых ты чаще всего будешь присылать без пробелов, во вторых если пробелов будет два и более, класс все равно добавится, и будет нормально работать.
|
наверное
|
честно не разу даже не проверял
|
Цитата:
|
document.querySelector && document.querySelectorAll
какую обертку для них лучше всего написать? |
| Часовой пояс GMT +3, время: 14:06. |