Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Помогите с событиями (https://javascript.ru/forum/events/11372-pomogite-s-sobytiyami.html)

Suharik 20.08.2010 13:07

Помогите с событиями
 
Всем привет. Как то на этом форуме подсказали как запретить выполнение события вот пример.:
onclick = "this.onmouseout=null"; func();

вот моя задача. У меня есть в одном src 3 события
onclick,onmuseover,onmouseout.

Значит при онмауовер открывается див с картинками, при при онмаусаут див закрывается. А если кликнуть то див фиксируется пока не закроеш кнопкой. Как раз это позволяет сделать onclick = "this.onmouseout=null"; func();. Но потом при повторно наведении на <img src=""> див показывается и стопорится на метсе. Собственно вопрос.
Как отменить this.onmouseout=null

Я полагаю что при onmuseover сделать что-то типа this.onmouseout= myfunc();

Прав или нет.

MikhailGirshberg 20.08.2010 16:22

прав
пробуй

onclick = "this.onmouseout=null"; func();
достаточно
onclick = "this.onmouseout=null";

Suharik 20.08.2010 16:54

MikhailGirshberg,
Наверное не так стоит задавать вопросы.
onclick = "this.onmouseout=null"; Нужно чтобы onmouseover= "this.onmouseout = НЕ null" стал. как ему опять убрать null если уже присваивался ?

MikhailGirshberg 20.08.2010 17:10

вариант 1:
my_very_clever_func(par1, par2, par3){
  ...
}
...
some_element.onclick=my_very_clever_func
...


вариант 2:
some_element.onclick=function(par1, par2, par3){
  ...
}

Suharik 27.08.2010 14:20

Че-то не совсем понимаю к чему все это. Мне кажется это не решает проблему. Сейчас приведу пример кода и еще раз попробую объяснить что к чему
Вот HTML код
<div id="myId" style="display:hidden"> <img src="myphotos.png"></div>

<img src="icon.png"   onmouseover="myFunctionOpen()"  onmouseout="myFunctionClose()"    onclick="myFunctionOpen()">

Вот JS код

myFunctionOpen = function(){
window.getelementbyid("myId").style.display = "block";
myFunctionClose = function(){
window.getelementbyid("myId").style.display = "hiden";



Пояснение. Есть иконка при наведении на которую открывается див с фоткой, а если увести мышь то див пропадает.
Задача: Как видно из примера там есть onclick при нажатии на который нужно чтобы див фиксировался и по нему можно было бы водить мышкой.

Реши это вот таким способом

<img src="icon.png"   onmouseover="myFunctionOpen()"  onmouseout="myFunctionClose()"    onclick="this.onmouseout=null; myFunctionOpen()">


Тоесть на onclick поставил this.onmouseout=null; при этом див фиксируется (пока него не закроем крестиком на диве).

Но!!! При повторном наведении уже не срабатывает onmouseOUT ,
Как сделать чтобы он опять заработал?

inGray 27.08.2010 14:35

Надо снова повесить обработчик на событие onmouseout.
Прочтите на досуге "События"

Suharik 27.08.2010 15:08

Кодом если можно.

inGray 27.08.2010 15:14

:-? В статье все в подробностях описано. Я уверен прочтение её очень положительно скажется на Ваших способностях программиста.

Suharik 27.08.2010 18:25

Спасибо конечно за статью, но я решил вопрос немного другим способом


Часовой пояс GMT +3, время: 22:29.