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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как передать параметр обработчику, object.onmouseout = mnout; 
:(
    Опции темы
Leshak
Дата 20.8.2009, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Подскажите - как передать параметр обработчику при его определении 
следующим образом:

object.onmouseout = mnout;
object.onclick = mnclick;

попытка получить данные через мышь
Код

var mnout = function(e){
    var tt = e.target.offsetParent.id;
    if ( (tt !== undefined) && (tt != 'undefined' )&& (tt != '' ) ) {
    //    document.getElementById(tt).style.visibility = 'hidden' ;
        alert('Ups '+ tt);
    }
    return false  ;  
}

привела к интересному наблюдению - onmouseout срабатывает как минимум 2 раза
1- при вхождении на объект,
2- при выходе с него..
странно...

посмотреть  можно тут  http://www.walks.ru/temp/del/test_menu.html

кнопочки  начали - продолжили - закончили

Это сообщение отредактировал(а) Leshak - 20.8.2009, 18:06
PM MAIL   Вверх
Leshak
Дата 21.8.2009, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



 передать, а точнее Получить информацию в функции обработчике 
получается через this

object.id = object;                    //  положили в условное место
object.onmouseout = mnout;   //  назначили обработчик

var mnout = function(e){
        document.getElementById(this.id).style.visibility = 'hidden' ; //  this.id - "условное место"
    return false  ;  
}

и вроде бы все передается, и даже работает - но почему-то наоборот :(
 объект "прячется" когда курсор над ним, 
и это происходит только с первым объектом - а остальные не реагируют ...

в чем тут ошибка зарылась??
----------------------------------------
а ошибка была в прокладке 
между креслом и компом :(

в пределах логики JS - все работает!

Это сообщение отредактировал(а) Leshak - 21.8.2009, 12:14
PM MAIL   Вверх
IDVsbruck
Дата 21.8.2009, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



События onmouseover и onmouseout действительно очень странные и срабатывают по нескольку раз, особенно первое.
Думаю, поэтому в jQuery были введены еще 2 события: onmouseenter и onmouseleave - они срабатывают корректно. Смотреть, КАК они это делали, не хочется, но работают именно так, как подсказывает логика, а не как стандартные события. Ничего конкретного не скажу, но возможно, что направление показал.
PM MAIL   Вверх
Leshak
Дата 21.8.2009, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



IDVsbruck,  Спасибо!

jQuery - это хорошо!
потому как стоит следующим пунктом smile

а пока изучаю построение меню на основе JSON....

"ошибки" в работе onmouseout были из-за того, что над объектом "поле меню" 
лежали объекты "строки меню" - и совершенно логично все срабатывало!

а с обработчиками событий много всякого забавного!!!
особенно если один и тот же обработчик привязывать в теге
<p id="p0" onClick="menu('p_0',this.id);" >
 и в JS
obj.onclick = menu;

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


 




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


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

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