Какие замечания можете привести по представленным функциям
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, время: 20:22. |