Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #61 (permalink)  
Старый 12.09.2010, 22:34
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Про критику addClass понял, у меня получается лицемерно: при removeClass проверка на reflow есть, при addClass -- нет
Ответить с цитированием
  #62 (permalink)  
Старый 13.09.2010, 00:13
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

лучше распарсить строку во множество, отредактировать и потом сериализовать
__________________
.ня
Ответить с цитированием
  #63 (permalink)  
Старый 13.09.2010, 10:28
Аспирант
Отправить личное сообщение для stopkran Посмотреть профиль Найти все сообщения от stopkran
 
Регистрация: 12.12.2009
Сообщений: 54

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

(почему используете
Object.prototype.toString.call(obj) == '[object Array]') ?
Ответить с цитированием
  #64 (permalink)  
Старый 13.09.2010, 11:23
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от stopkran
почему нельзя просто проверять
можно, если рассчитываете, что не будете использовать iframe и window.open (или будете использовать редко и обдумано).
Ответить с цитированием
  #65 (permalink)  
Старый 13.09.2010, 11:48
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

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

Сообщение от stopkran
почему нельзя просто проверять
obj instanceof Array
http://alljs.ru/articles/array/noarray.html
Ответить с цитированием
  #66 (permalink)  
Старый 14.09.2010, 00:31
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

лучше= расширяемей. когда потребуется сделать циклическую смену классов или по хешу или ещё как-нибудь - не придётся заново писать регулярки, генерировать их и париться с отладкой. а скорость тут не важна
__________________
.ня
Ответить с цитированием
  #67 (permalink)  
Старый 14.09.2010, 04:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

на тему добавить удалить класс )))
<!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>

Последний раз редактировалось рони, 14.09.2010 в 12:13.
Ответить с цитированием
  #68 (permalink)  
Старый 14.09.2010, 09:09
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

рони,
а это о чём?
Ответить с цитированием
  #69 (permalink)  
Старый 14.09.2010, 12:12
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Kolyaj,
о примере удаления добавления класса расположенного http://ir2.ru/show-hide-toggle.aspx
наверно нужно было там и писать.
основной момент это использование в проверке там флага i что приведёт к недобавлению скажем класса Green при наличии класса green.
И ещё почему бы при добавлении класса не тестировать его наличие а просто удалять если он есть. ну и немного с пробелами чтоб они не копились
replace(/^\s+|\s+$/, '');
Ответить с цитированием
  #70 (permalink)  
Старый 14.09.2010, 12:17
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск