Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #51 (permalink)  
Старый 28.05.2012, 16:19
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от FINoM
Но это мне совсем не нравится.
ну а что поделать... я так и делаю, просто перебираю все свойства нужные. То есть для прототипной модели это вполне норм, ибо в любом случае нужно перебирать что бы навесить всем элементам их.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #52 (permalink)  
Старый 28.05.2012, 16:25
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

devote, получается, что при каждом вызове dataset нужно перебирать всё и сравнивать с атрибутами. Ах, да, еще одна проблема:
var dataset = el.dataset;
dataset.a = 1; // ← не сработает

------
Можно ли как-то известные свойства объекта коммента сделать «невидимыми» для for in в IE8?
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #53 (permalink)  
Старый 28.05.2012, 17:33
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от FINoM Посмотреть сообщение
devote, получается, что при каждом вызове dataset нужно перебирать всё и сравнивать с атрибутами. Ах, да, еще одна проблема:
var dataset = el.dataset;
dataset.a = 1; // ← не сработает
Смотря у кого стоит событие, у объекта el или у объекта dataset
Сообщение от FINoM Посмотреть сообщение
------
Можно ли как-то известные свойства объекта коммента сделать «невидимыми» для for in в IE8?
Для некоторых можно но не для всех. Просто вызвать defineProperty с указанием enumerable: false
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #54 (permalink)  
Старый 28.05.2012, 17:38
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от devote
Смотря у кого стоит событие, у объекта el или у объекта dataset
Вот именно, если dataset — html нода или коммент, в нем, очевидно, будут лишние свойства.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #55 (permalink)  
Старый 28.05.2012, 18:13
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

FINoM, в IE8 есть же геттеры/сеттеры, какой профит от ноды?
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #56 (permalink)  
Старый 28.05.2012, 18:15
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от B~Vladi
FINoM, в IE8 есть же геттеры/сеттеры, какой профит от ноды?
профит в том что он хочет реализовать dataset, но тут обычные геттеры/сеттеры совсем не подойдут, даже в ИЕ9-10 и других браузерах. Потому как нужны магические геттеры/сеттеры которые ловить будут появление новых свойств.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #57 (permalink)  
Старый 28.05.2012, 18:15
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от B~Vladi
FINoM, в IE8 есть же геттеры/сеттеры, какой профит от ноды?
Подробнее можно? Там есть Object.defineProperty, но он работает только с элементами DOM.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #58 (permalink)  
Старый 28.05.2012, 18:16
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от devote
Потому как нужны магические геттеры/сеттеры которые ловить будут появление новых свойств.
Угу, типа propertychange.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #59 (permalink)  
Старый 28.05.2012, 18:24
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

Сообщение от FINoM
но, черт возьми, там куча лишних свойств. То бишь, перебрать его обычным for...in не получится.
hasOwnProperty ещё никто не отменял
Ответить с цитированием
  #60 (permalink)  
Старый 28.05.2012, 18:29
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от Раед
hasOwnProperty ещё никто не отменял
Во первых с DOM элементами оно не работает (IE8), во вторых эти элементы «имеют собственные свойства», которые попадают в for..in (Chrome).
Сообщение от devote
Просто вызвать defineProperty с указанием enumerable: false
Не работает http://jsfiddle.net/QGdqq/1/ (См. IE8)

Цитата:
SCRIPT5037: Для данного объекта атрибут "enumerable" дескриптора свойства не может иметь значение False
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности

Последний раз редактировалось FINoM, 28.05.2012 в 18:32.
Ответить с цитированием
Ответ



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

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