Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ОПП - функция для <img> 
:(
    Опции темы
WideSpeC
  Дата 5.10.2007, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 5.10.2007

Репутация: нет
Всего: нет



Мне нужно сделать такую штуку:

MyImgName1.MyFunc(ImSrc,ImWidth);
MyImgName2.MyFunc(ImSrc,ImWidth);
... и т. д.

Функция должна быть всего одна. 
Впереди подставляются имена объектов типа <IMG>, которые она меняет. 

По скудным статейкам по ООП не разобрался.  Может кто-нибудь знает книгу?
А формирование команд через EVAL - дебилистическое занятие.

Хочецца увидеть рабочий пример функции, устанавливающей SRC или WIDTH.
И она должна работать не только на Netscape, но и на большинстве браузеров.
PM MAIL   Вверх
Тутанхамец
Дата 6.10.2007, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 10.10.2005
Где: в пирамидЕ!

Репутация: нет
Всего: 6



А тебе принципиально использовать ООП-синтаксис? Может проще сделать функцию типа:
Код

function SetDimensions(MyImg, NewWidth, NewHeight)
{
MyImg.style.width=NewWidth;
MyImg.style.height=NewHeight;
}


PM MAIL   Вверх
dsCode
Дата 6.10.2007, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: 19
Всего: 26



WideSpeC, делаете обычный объект ("класс"), основная проперть которого будет изображение (объект изображения или srс его). Реализуете необходимые методы. В общих чертах - что-то вроде:

Код

function myImage(imgObj) {
  // "конструктор"
  this.img = imgObj;
}

myImage.prototype.setWidth = function(windth) {
  this.width = this.img.style.width = width;
  return true;
}

myImage.prototype.getWidth = function() {
  return this.width;
}

// и т.д.

// далее, объект "класса"
var myImg = new myImage(здесь_оъект_изображения);
myImg.setWidth('200px');
alert(myImg.getWidth());



--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
solenko
Дата 6.10.2007, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 9
Всего: 67



Чисто академический интерес...
Можно как-то расширить стандартные DOM классы?
Ведь можно же добавить Array.prototype.sume_function = ...
А для DOMElement можно такое как-то сделать?


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
vasac
Дата 6.10.2007, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 13
Всего: 36



Можно во всех нормальных браузерах. Аналогично Array.
В ненормально браузере DOM-объекты не имеют прототипов.
PM WWW   Вверх
AKS
Дата 7.10.2007, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



Цитата(vasac @  6.10.2007,  21:50 Найти цитируемый пост)
В ненормально браузере DOM-объекты не имеют прототипов. 

Зато они имеют behavior и htc.
PM MAIL   Вверх
vasac
Дата 7.10.2007, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 13
Всего: 36



Цитата(AKS @  7.10.2007,  10:49 Найти цитируемый пост)
Зато они имеют behavior и htc. 

Ну, вобщем я тоже не сторонник заявлений "единственные стандарты — w3c, а IE отстой". Есть много моментов, где IE лучше.
Но почему при всех его достоинствах, у DOM-элементов нет прототипов?
Почему в обработчиках событий this ссылается фиг знает куда?
Почему элементарные замыкания текут, а разработчики несколько лет писали в своих блогах, как это обходить, прежде чем взять и просто исправить?
smile
PM WWW   Вверх
AKS
Дата 7.10.2007, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



vasac, столько вопросов, а ответ-то один. Все это потому, что в IE элементы документа не являются объектами JScript. Интерфейс DOM устроен иначе, и переделывать его для того, чтобы предоставить доступ к предкам нод, не станет никто. Вот пример одной из причин. Даже авторы js-скриптов не хотят переделывать свою писанину, приговаривая: "А оно и так работает, зачем мне это нужно". Так что уж говорить о IE-движке?

Добавлено через 3 минуты и 37 секунд
Да, кстати. Давно ли это все "добро" (HTMLElement и проч.) появилось в Safary, к примеру, или в Opera? 
PM MAIL   Вверх
vasac
Дата 7.10.2007, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 13
Всего: 36



Сафари в баню )
Цитата(AKS @  7.10.2007,  18:31 Найти цитируемый пост)
Все это потому, что в IE элементы документа не являются объектами JScript.

Ну, вот и именно. А почему?
PM WWW   Вверх
AKS
Дата 7.10.2007, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



Цитата(vasac @  7.10.2007,  18:56 Найти цитируемый пост)
А почему? 

Пока мне не посчастливилось где-нибудь прочесть исповедь разработчиков IE касательно этого вопроса. Вообще, в какие времена-то уходит корнями IE-движок, а? Я вот в прошлом году узнал кое-что об window.event в IE. Сначала обалдел, а потом призадумался: "Да это же сделано в какие дремучие времена - чего же ожидать". О том и пишу, что "поросло все мхом", но переделывать - зачем? Что за необходимость, спросит нас с Вами разработчик IE, в HTMLElement'е?

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0895 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.