Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Библиотечка . (https://javascript.ru/forum/project/6025-bibliotechka.html)

Kolyaj 12.09.2010 22:34

Про критику addClass понял, у меня получается лицемерно: при removeClass проверка на reflow есть, при addClass -- нет :)

tenshi 13.09.2010 00:13

лучше распарсить строку во множество, отредактировать и потом сериализовать

stopkran 13.09.2010 10:28

Следующий вопрос: почему нельзя просто проверять
obj instanceof Array

(почему используете
Object.prototype.toString.call(obj) == '[object Array]') ?

Riim 13.09.2010 11:23

Цитата:

Сообщение от stopkran
почему нельзя просто проверять

можно, если рассчитываете, что не будете использовать iframe и window.open (или будете использовать редко и обдумано).

Kolyaj 13.09.2010 11:48

Цитата:

Сообщение от tenshi
лучше распарсить строку во множество, отредактировать и потом сериализовать

Лучше == быстрее?

Цитата:

Сообщение от stopkran
почему нельзя просто проверять
obj instanceof Array

http://alljs.ru/articles/array/noarray.html

tenshi 14.09.2010 00:31

лучше= расширяемей. когда потребуется сделать циклическую смену классов или по хешу или ещё как-нибудь - не придётся заново писать регулярки, генерировать их и париться с отладкой. а скорость тут не важна

рони 14.09.2010 04:20

на тему добавить удалить класс )))
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title></title>
<style type="text/css">
.Green{
  color: #FF0000;
}
.green{
   background-color: #008000;
}
</style>
</head>
<body>  <div   class="Green"  onclick="addclass(this,'green');addclass(this,'Green');addclass(this,'green');alert(this.className+' '+this.className.length);">12345</div>
<script language="JavaScript" type="text/javascript">
function delclass(obj, c) { obj.className = obj.className.replace(RegExp('(\\s+|^)' + c + '(\\s+|$)', 'g'), " ").replace(/^\s+|\s+$/,'')}
function addclass(obj, c) { delclass(obj, c); obj.className += " " + c}
</script>
</body>
</html>

Kolyaj 14.09.2010 09:09

рони,
а это о чём?

рони 14.09.2010 12:12

Kolyaj,
о примере удаления добавления класса расположенного http://ir2.ru/show-hide-toggle.aspx
наверно нужно было там и писать.
основной момент это использование в проверке там флага i что приведёт к недобавлению скажем класса Green при наличии класса green.
И ещё почему бы при добавлении класса не тестировать его наличие а просто удалять если он есть. ну и немного с пробелами чтоб они не копились
replace(/^\s+|\s+$/, '');

Kolyaj 14.09.2010 12:17

Цитата:

Сообщение от рони
И ещё почему бы при добавлении класса не тестировать его наличие а просто удалять если он есть.

Так будет лишняя перерисовка страницы.


Часовой пояс GMT +3, время: 12:23.