Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.05.2010, 23:19
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Значение функции
Значение функции будет вычислено один раз при загрузке и запомнено, или будет вычисляться каждый раз при обращении:

addEvent= window.ActiveXObject ? function(elem, even, func) {elem.attachEvent("on"+even, func)} : function(elem, even, func, bool) {elem.addEventListener(even, func, bool||false)};


????
Ответить с цитированием
  #2 (permalink)  
Старый 01.05.2010, 23:41
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

а вы-то сами как думаете?!
переменая addEvent один раз примет сво значение, и в дальнейшем, при выховах addEvent(params), будет использоватся уже вычисленное значение ф-ции
Ответить с цитированием
  #3 (permalink)  
Старый 01.05.2010, 23:42
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Да, да, спасибо, уже понял))
Ответить с цитированием
  #4 (permalink)  
Старый 02.05.2010, 20:36
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Какой, однако, изощренный способ проверки, есть ли у элемента метод .addEventListener!
Ответить с цитированием
  #5 (permalink)  
Старый 02.05.2010, 23:00
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

А чем вам не нравится проверка браузера через window.ActiveXObject? Буду благодарен за совет.
Ответить с цитированием
  #6 (permalink)  
Старый 02.05.2010, 23:04
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

В IE9 будет и ActiveXObject и addEventListener. Ваш способ не позволит использовать в нем addEventListener. Почему просто не проверить window.addEventListener?
Ответить с цитированием
  #7 (permalink)  
Старый 02.05.2010, 23:25
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Спасибо, Octane.
Ответить с цитированием
  #8 (permalink)  
Старый 03.05.2010, 13:30
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Слушайте, а имеет смысл делать проверку на attachEvent? То есть вот так:

addEvent=window.addEventListener ? function(elem, even, func, bool){elem.addEventListener(even, func, bool||false)} : window.attachEvent ? function(elem, even, func){elem.attachEvent("on"+even, func)} : function(elem, even, func){elem["on"+even]=func};
Ответить с цитированием
  #9 (permalink)  
Старый 03.05.2010, 13:36
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Браузеров, не поддерживающих ни addEventListener, ни attachEvent, не осталось. Хотя я даже не застал момент, когда такие были
Ответить с цитированием
  #10 (permalink)  
Старый 04.05.2010, 00:41
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Так. Попробовал переписать функцию под prototype. Получилось так:

addEvent=window.addEventListener ? function(even, func, bool){this.addEventListener(even, func, bool||false)} : function(even, func){var elem=this; elem.attachEvent("on"+even, func)};
object.prototype.addEvent=addEvent;


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



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Глобальная переменная, считать правильнае значение в функции konstantinopol Общие вопросы Javascript 11 01.05.2010 23:28
Переменная как значение функции. Jurasmi Общие вопросы Javascript 7 22.04.2010 12:45
Кросс-браузерные функции B~Vladi Ваши сайты и скрипты 128 01.09.2009 17:11
Присвоить значение результату функции... Дроздов Общие вопросы Javascript 2 07.03.2009 21:42
Как вывести на экран значение функции SELECT MAX(id) Владдд Серверные языки и технологии 3 25.01.2009 16:07