Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 25.02.2015, 15:29
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
Чем провинился JS? Почему вдруг стало невозможным его использование?
Не будь занудой. Я имел в виду "без сторонних модулей".

Цитата:
Не совсем понял что смешного в этом подходе? То, что его еще кто-от использует?
Абсолютно ничего смешного. Тот же реакт можно использовать только для V.
Вот только ты предлагаешь велосипедить все самому, когда уже есть готовые решения.
Ответить с цитированием
  #12 (permalink)  
Старый 25.02.2015, 19:47
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от Erolast
Не будь занудой.
Я еще и зануда... Самое главное в споре это обозвать оппонента.

Сообщение от Erolast
Вот только ты предлагаешь велосипедить все самому, когда уже есть готовые решения.
А ты предлагаешь начать присоединять сторонние фреймворки! И это ради нескольких строк кода...
Ответить с цитированием
  #13 (permalink)  
Старый 26.02.2015, 06:52
Интересующийся
Отправить личное сообщение для lucky89 Посмотреть профиль Найти все сообщения от lucky89
 
Регистрация: 27.10.2014
Сообщений: 16

так не работает
Сообщение от ksa Посмотреть сообщение
Запасной вариант!
Иметь некий див-заготовку. Его внутренности просто клонировать в твой див-форму. Причем делать это всякий раз при его открытии. Прибил внутренности у дива-формы, клонировал внутренности из дива-заготовки - вот тебе и девственная форма заказа
Может я не правильно понял, но вроде я так пробовал и написал в начале, что не получилось. Делал так:
var tmp = div.html(); //Сохранил в переменную чистый код
программа отработала...
div.html(tmp); //Вставил чистый код на место
Итог: формы чистые, но дальше ничего не работает, так как слетели все ранее определенные переменные, а именно все что было связано с DOM внутри div:
var $ffcDiv = $('#ffcDiv');
var $ffcManagerName = $('#ffcManagerName');
var $ffcClientName = $('#ffcClientName');
и т.д.
Можно, конечно, при чистке их каждый раз переопределять, но если я так подойду к созданию всех необходимых в будущем подобных div'ов, то боюсь получить лагающий портал...
Ответить с цитированием
  #14 (permalink)  
Старый 26.02.2015, 08:56
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
Самое главное в споре это обозвать оппонента.
А? Это "обозвал" теперь называется?
Цитата:
А ты предлагаешь начать присоединять сторонние фреймворки! И это ради нескольких строк кода...
Я что-то не уверен, что на этих нескольких строках дело закончится.
Цитата:
Можно, конечно, при чистке их каждый раз переопределять, но если я так подойду к созданию всех необходимых в будущем подобных div'ов, то боюсь получить лагающий портал...
Вот именно поэтому и следует использовать бэкбон/реакт - они за тебя позаботятся, что надо перерисовывать и что нет (реакт особенно).
http://facebook.github.io/react/
https://babeljs.io/docs/usage/jsx/

Последний раз редактировалось Erolast, 26.02.2015 в 08:58.
Ответить с цитированием
  #15 (permalink)  
Старый 26.02.2015, 09:03
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от lucky89
не получилось
При клонировании "внутренностей" использование ИД недопустимо. Т.к. ИД должно быть уникально на странице.

В итоге у тебя должна быть такая структура

<div id='box-form'>
   <!-- тут будет работать пользователь -->
</div>
<div id='box-template'>
   <!-- тут размещаются пустые элементы -->
</div>

У ключевых элементов должен быть свой "уникальный" класс. И обращаться к ним нужно будет "через призму" родителя, т.е. так

var $ffcDiv = $('#box-form .ffcDiv');
var $ffcManagerName = $('#box-form .ffcManagerName');
var $ffcClientName = $('#box-form .ffcClientName');
Ответить с цитированием
  #16 (permalink)  
Старый 26.02.2015, 09:04
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Erolast, делай как знаешь... Зануда.
Ответить с цитированием
  #17 (permalink)  
Старый 26.02.2015, 18:24
Интересующийся
Отправить личное сообщение для lucky89 Посмотреть профиль Найти все сообщения от lucky89
 
Регистрация: 27.10.2014
Сообщений: 16

Цитата:
ИД должно быть уникально на странице
Это конечно. Так он у меня был и есть уникальный.
div.html(tmp); - ничего не дублирует. Она совсем удаляет старое содержимое из div и вставляет туда код из переменной. Получается элементы со старыми ИД пропадают, а на их местах новые "пустые" элементы с такими же ИД. Я так понимаю, что с точки зрения DOM это абсолютно другие элементы и, по этому, ранее определенные всякие $ffcClientName = $('#ffcClientName'); слетают. Если определить по новой, то все работает.
И вот вопрос: что с точки зрения производительности лучше, все множество вложенных элементов поштучно вернуть к начальному состоянию или же обнулить html в div'e вышеуказанным способом и переопределить все переменные? Или как-то иначе?
PS: сторонние тяжеленные фреймверки для таких задач использовать не буду, так как очевидно, что даже поштучное восстановление элементов средствами jquery менее затратно по вычислительным ресурсам и объему кода. Я и jquery не хотел применять, но решил, что не осилю все нюансы кросбраузерности средствами голого js, так что пусть будет - спасет от множества недочетов.
Ответить с цитированием
  #18 (permalink)  
Старый 26.02.2015, 18:41
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от lucky89
ранее определенные всякие $ffcClientName = $('#ffcClientName'); слетают. Если определить по новой, то все работает.
Используй делегирование...
http://api.jquery.com/on/
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как удалить из HTML все элементы со стилем hidden Почемучкин Events/DOM/Window 3 24.06.2011 14:40
Название ячейки таблицы Questioner Общие вопросы Javascript 6 16.02.2011 09:58
как удалить все элементы в Div e ? Arfey Общие вопросы Javascript 14 10.06.2010 11:50
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37
Как удалить все пустые элементы UL smashercosmo Events/DOM/Window 13 25.02.2009 09:03