проблема с вызовом функций

 
0
 
JavaScript
ava
guest | 18.10.2004, 09:20
вот еще одна проблемка всплыла....
вот есть некоторая область
<DIV onmousedown="clear_display()" style="width: 100%; height: 100%">
<a href=# onmousedown="menu1">Menu1</a>
</DIV>


внутри типа ссылка, которая открывает некоторое меню......
идея такая, что при кликании на другую область меню 1 должно исчезать.....
но происходит следующее: открывается menu1 и закрывается.....
можно ли сделать, чтобы при кликании на ссылку, функция clear_display не вызывалась?
Comments (6)
ava
Gold Dragon | 18.10.2004, 08:52 #
А как же она не будет вызываться, если у тебя она сраватывает на событие, когда ты нажимаешь кнопку мышки onmousedown="clear_display()" .

И что-то не совсем понятно зачем это нужно
ava
guest | 18.10.2004, 09:30 #
хочу сделать типа контекстного меню....наводишь на ссылку...кликаешь, выскакивает меню 1.....потом чтобы убралось это меню кликаешь в любое место, но не на ссылку........вот такая задумка.....

я вот и спрашиваю, можно ли как то в функции clear_display сделать проверка, чтобы определить где нажатие произошло....чтобы если на ссылке, то просто выход из функции...если не на ссылке, но скрывает меню1....

или может быть по другому как-нить организовать опрос нажатия не на ссылку....
ava
Се ля ви | 18.10.2004, 14:33 #
Посмотри объект Event свойство srcElement - это ссылка на тег, на котором произошло событие. Можешь вообще повесить вызов onmousedown="clear_display()" на тег <body> и просто определять по этому свойству, где событие произошло.
ava
Aliance | 18.10.2004, 21:35 #
Цитата
Посмотри объект Event свойство srcElement

Работает только в IE, для выравнивая моделей IE и W3C DOM используем сл. синтаксис:
evt = (evt) ? evt : ((window.event) ? window.event : null )
  if(evt) {
     var target = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null );
}
ava
Sardar | 18.10.2004, 22:51 #
uranishe что то не верное происходит... smile
Все что нужно это остановить обьект события, иначе он бежит дальше(bubbling).

<DIV onmousedown="clear_display(event)" style="width: 100%; height: 100%">
<a href=# onmousedown="menu1()">Menu1</a>
</DIV>

function clear_display(ev) {
if(ev.stopPropagation) ev.stopPropagation();
else ev.cancelBubble=true;
.....
}
ava
guest | 19.10.2004, 07:01 #
все разобрался.....всем спасибо большущее.....
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit