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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> обьект из event 
V
    Опции темы
neoks
Дата 8.12.2011, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Кароче вот, не знаю, уже целый день рыскаю.
Суть такова, есть событие которое сробатывает при клике, так вот, передается событие event, но не как сообразить не могу, как из этого event получить обьект с которым мне потом нужно работать.

Такой вот маленький вопрос а затенулся почти на весь день, Очень нужна ваша помошь ))
PM MAIL   Вверх
Stolzen
Дата 8.12.2011, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



А с каким объектом вам потом нужно работать? 


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
neoks
Дата 8.12.2011, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вот скрипт
Код

var last_move = {x:0,y:0};
    function touchHandler(event)
{

    var touches = event.changedTouches,
        first = touches[0],
        type = "";
         switch(event.type)
    {
        case "touchstart": type = "mousedown"; break;
        case "touchmove":  type="mousemove"; break;
        case "touchend":   type="mouseup"; break;
        default: return;
    }

             //initMouseEvent(type, canBubble, cancelable, view, clickCount,
    //           screenX, screenY, clientX, clientY, ctrlKey,
    //           altKey, shiftKey, metaKey, button, relatedTarget);

    var simulatedEvent = document.createEvent("MouseEvent");

    simulatedEvent.initMouseEvent(type, true, true, window, 1,
                              first.screenX, first.screenY,
                              first.clientX, first.clientY, false,
                              false, false, false, 0/*left*/, null);

    first.target.dispatchEvent(simulatedEvent);

    if(type == 'mousemove'){
        if(first.clientY !== last_move.y){

            event.preventDefault();
        }
    }
    if(type == 'mouseup'){
        last_move.y = first.clientY;
        //lines.hoverInput(true,$(this).attr('id'));
        //lines.closeLine();
        statusBar(event.object)
    }

    if(event.target.class == 'output'){
        $('.drag').draggable('disable');

    }
    else{
        $('.drag').draggable('enable');
    }

    

}

function init_touch()
{
    document.addEventListener("touchstart", touchHandler, true);
    document.addEventListener("touchmove", touchHandler, true);
    document.addEventListener("touchend", touchHandler, true);
    document.addEventListener("touchcancel", touchHandler, true);
}
init_touch();


Есть event, вот теперь мне нужно получить свойства обьекта к примеру : $(object).attr('id') вот как мне найти обьект из event, возможно this но не работает, пробую на планшете )
PM MAIL   Вверх
Stolzen
Дата 8.12.2011, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Раз используете jquery, то применяйте лучше его для обработки событий. Можно использовать это - http://api.jquery.com/mousedown/

Вот пример: 

Код

$("p").mouseup(function(){
      $(this).append('<span style="color:#F00;">Mouse up.</span>');
}).mousedown(function(){
      $(this).append('<span style="color:#00F;">Mouse down.</span>');
});


В этих функциях this - ссылка на нужный объект.


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
neoks
Дата 8.12.2011, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ага, это гуд, но планшет на базе андроид этого не понимает, ему нужен особый скрипт, но вот и застрял, так как не знаю как получить обьект из event, хотя может это вообше нельзя так сделать ?
PM MAIL   Вверх
Amphiluke
Дата 8.12.2011, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


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

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



Цитата(neoks @  8.12.2011,  20:52 Найти цитируемый пост)
возможно this но не работает, пробую на планшете

Конечно, this не будет работать, поскольку вы регистрируете слушателя на объект document. Вот на document и будет всегда ссылаться this.
А вот event.target должно быть тем, что нужно, если, конечно, под object вы подразумеваете объект, вызвавший событие.
Цитата(neoks @  8.12.2011,  20:52 Найти цитируемый пост)
мне нужно получить свойства обьекта к примеру : $(object).attr('id')


Добавлено через 2 минуты и 9 секунд
Цитата(neoks @  8.12.2011,  20:52 Найти цитируемый пост)
event.target.class

А вот это вообще ошибка. Что за свойство class? Вроде, слово зарезервировано.
PM   Вверх
neoks
Дата 8.12.2011, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Почти понял, но вот снова загвостка, как проверить что я нахожусь на нужном классе.

Код

if(event.target.className == 'input'){
            alert('f')
        }


Но это не то )

Добавлено через 1 минуту и 9 секунд
Так как может вернуть например position drag input
PM MAIL   Вверх
Amphiluke
Дата 8.12.2011, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


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

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



Код

if(event.target.className.match(/\binput\b/) {

PM   Вверх
neoks
Дата 8.12.2011, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Эхх, спасибо за помошь, но всеравно не работает, кароче я запарился с этим скриптом.
И на последок ктонить знает как эмулировать события onmouserover для мобильных версии браузера ?

PM MAIL   Вверх
Amphiluke
Дата 8.12.2011, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


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

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



ИМХО, если реализация какого-то сценария приводит к необходимости эмуляции низкоуровневых событий, есть серьезные основания задуматься о том, чтобы отказаться совсем от такой реализации, или измененить логику работы сценария, или еще что-то. Эмулировать стоит только высокоуровневые и искусственные события (и то далеко не всегда). Я бы оставил эмуляцию событий с помощью createEvent/initEvent/dispatchEvent на самый крайний случай, когда никакие другие средства не работают.

Это сообщение отредактировал(а) Amphiluke - 8.12.2011, 18:18
PM   Вверх
neoks
Дата 8.12.2011, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Просто у меня в скрипте есть события на  mouseover and mouseout, для браузера все пучком, но вот хочу чтоб и на планшете работало, вот тока уже не знаю как это замутить вместо mouseover and mouseout ))

Даже не знаю как придумать, и даже mouseup не срабатывает, вообшем очень все плохо  smile 
PM MAIL   Вверх
Amphiluke
Дата 8.12.2011, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


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

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



А вы не пробовали всё-таки использовать уже проверенные заточенные под мобильные устройства библиотеки? jQuery mobile, например.
PM   Вверх
neoks
Дата 8.12.2011, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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


 




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


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

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