2010-08-31 2 views
0

Я как бы застрял в проблеме того, как остановить мое меню от выполнения функции fadeOut(). Когда я нажимаю основные ссылки в своем меню, чтобы открыть подменю, оно просто исчезает. Вот как выглядит код на данный момент:Как написать «если не щелкнуть» или «если щелкнул внешний элемент», используя JQuery?

$('a.main-menu-item').click(function(){ 

    if($('.rtmenu:visible')){ 

     $('.rtmenu').click(function(e) { e.stopPropagation(); }); 

     $(document).click(function() { 
      $('.rtmenu').fadeOut(200); 
     }); 
    } 
}) 

Может кто-нибудь сказать мне, как я могу писать «если не нажата a.main-пункта меню», где он говорит, что «документ»?

Много Оценил


РЕШЕНИЕ НАЙДЕНО!

$('.rtmenu').click(function(e) { e.stopPropagation(); }); 
$('.rtmenu').mouseout(function(){ 
    $(document).one('click',function() { $('.rtmenu').fadeOut(200); }); 
}) 
+1

увидеть это http://stackoverflow.com/questions/152975/how-to-detect-a-click-outside-an-element – 2010-08-31 10:50:34

ответ

1

Посмотрите на Ben Alman's "outside events" plugin. Он позволяет определять диапазон событий, а не просто щелкнуть события. С его помощью, ваш код будет выглядеть примерно так:

$('.rtmenu').bind('clickoutside', function() { 
    $(this).fadeOut(200); 
}); 

Как и в стороне, вы не должны установить привязку внутри события щелчка для меню, это будет придавать другому обработчику каждый раз, когда пункт меню щелкнуло , Ваш код должен быть заменить чем-то вроде:

$('a.main-menu-item').click(function(){ 
    // Show menu item 
}); 
$('.rtmenu').bind('clickoutside', function() { 
    $(this).fadeOut(200); 
}); 
+0

Жаль, что это не сработало – Nasir

+0

@ Насир: тогда вы, вероятно, не используете его правильно. Я добавил пример на свой пост. –

+0

Да, расскажите мне об этом ... Я пытаюсь интегрироваться с ASP Classic ... fippin joke. Невозможно изменить «документ» в моем существующем коде? – Nasir

0

использование blur событие для обработки потери фокуса. This может также помочь.

+0

К сожалению это не работа – Nasir

Смежные вопросы