Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 26.06.2011, 09:56
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Shock
Зачем в Canvas-фреймворке костыли для IE, если даже с ними там ничего не заработает?
ну так, нас не только товарищ DNemo/DreamTheater читает, есть еще аудитория тех кто учатся писать под IE:
['mouseover', 'mouseout', 'mousemove', 'mousedown', 'mouseup', 'click'].join().search('mousemove') === -1;
//либо так:
'mouseover, mouseout, mousemove, mousedown, mouseup, click'.search('mousemove') === -1;

для тех, кто не знает как реализовать Array.indexOf():
(function($) {
    if(!$.indexOf) {
        $.indexOf = function(object) {
            var length = this.length -1, i = 0;
            while(++i <= length) {
                if(i in this && this[i] === object) {
                    return i;
                }
            }
            return -1;
        };
    }
})(Array.prototype);


Shock, у вас все проекты ориентированные на IE9+?

DNemo/DreamTheater, что за событие mouseclick?

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

Сообщение от monolithed
для тех, кто не знает как реализовать Array.indexOf():
Вы реализовали lastIndexOf.
Ответить с цитированием
  #23 (permalink)  
Старый 26.06.2011, 10:34
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Kolyaj
Вы реализовали lastIndexOf.
ага, забыл -1 дописать))
Ответить с цитированием
  #24 (permalink)  
Старый 26.06.2011, 12:17
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от monolithed
ага, забыл -1 дописать))
совсем плохо стало:
1. по прежнему lastIndexOf.
2. возможен бесконечный цикл (если массив пустой).
3. никогда не находит совпадение в последнем элементе ( alert([2, 1].indexOf(1));// -1 ).

Без поддержки второго аргумента (from) у меня получается так:
if (!('indexOf' in arrayProto)) {
	arrayProto.indexOf = function(item) {
		for (var i = 0, l = this.length; i < l; i++) {
			if (this[i] === item) return i;
		}
		return -1;
	};
}

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

Сообщение от monolithed
ага, забыл -1 дописать))
Нет, с вами сыграла злую шутку привычка оптимизировать то, что не тормозит. Массив нужно перебирать с начала.
Ответить с цитированием
  #26 (permalink)  
Старый 26.06.2011, 12:51
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Kolyaj
Нет, с вами сыграла злую шутку привычка оптимизировать то, что не тормозит. Массив нужно перебирать с начала.
Для меня просто работает поговорка: "Поспешишь, людей насмешишь", особенно когда только проснулся))

Последний раз редактировалось monolithed, 26.06.2011 в 13:02.
Ответить с цитированием
  #27 (permalink)  
Старый 26.06.2011, 13:23
Аватар для DreamTheater
Профессор
Отправить личное сообщение для DreamTheater Посмотреть профиль Найти все сообщения от DreamTheater
 
Регистрация: 15.02.2011
Сообщений: 471

Сообщение от monolithed Посмотреть сообщение
DNemo/DreamTheater, что за событие mouseclick?
Событие mousedown вызывается когда кнопка мыши нажимается над объектом, mouseup - когда отпускается. А mouseclick срабатывает только если кнопка была нажата и отпущена над одним и тем же объектом.
Ответить с цитированием
  #28 (permalink)  
Старый 26.06.2011, 13:29
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от DreamTheater
А mouseclick срабатывает только если кнопка была нажата и отпущена над одним и тем же объектом.
может все-таки click, а не mouseclick?
Ответить с цитированием
  #29 (permalink)  
Старый 26.06.2011, 13:36
Аватар для DreamTheater
Профессор
Отправить личное сообщение для DreamTheater Посмотреть профиль Найти все сообщения от DreamTheater
 
Регистрация: 15.02.2011
Сообщений: 471

Сообщение от monolithed Посмотреть сообщение
может все-таки click, а не mouseclick?
Да, именно так
Ответить с цитированием
  #30 (permalink)  
Старый 26.06.2011, 13:44
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Riim
Без поддержки второго аргумента (from)
видимо как-то так, должно быть:
(function($) {
    if(!$.indexOf) {
        $.indexOf = function(object) {
            var length = this.length, i = arguments[1] || 0;
            i =  Math[i < 0 ? 'ceil' : 'floor'](i) - 1;
            //для отрицательных индексов
            if(i < 0) i += length;

            while(++i <= length) {
                if(i in this && this[i] === object) {
                    return i;
                }
            }
            return -1;
        };
    }
})(Array.prototype);

Последний раз редактировалось monolithed, 26.06.2011 в 13:53.
Ответить с цитированием
Ответ



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

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