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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> IE6 event bubbling 
:(
    Опции темы
DimaSiK
Дата 7.3.2011, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Есть простое самописное меню:
Код

<div class="b-menu">
                    <!-- main menu -->
                    <div class="b-main-menu">
                        <a href="javascript:void(0);" onmouseover="menu.showSubMenu('item1');">item1</a>
                        <a href="#">item2</a>
                        <a href="javascript:void(0);" onmouseover="menu.showSubMenu('item2');">item3</a>
                    </div>
                    <div class="menu-delimiter"></div>
                    <!-- sub menu -->
                    <div class="b-sub-menu hidden" id="item1">
                        <a href="design-projects.html">subitem1</a>
                        <a href="programming-projects.html">subitem2</a>
                    </div>
                    <div class="b-sub-menu hidden" id="item2">
                        <a href="about-us.html">subitem3</a>
                        <a href="technologies.html">subitem4</a>
                        <a href="contact.html">csubitem5</a>
                    </div>
                    <!-- sub menu -->
                    <div class="clear"></div>
                </div>


Код инициализации меню:

Код

var menu = $('.b-menu').initmenu('item1');


Код самого плагина меню:

Код

/**
* plugin manage menu actions
*/
(function($) {

    $.fn.initmenu = function(options) {
        
        options =   $.extend({current: ''}, options);
        
        this.each(function(){
            $(this).mouseleave(function(event){
                
                // 1. hide all sub menu
                $('.b-sub-menu').addClass('hidden');
                
                if(options.current != '') {
                    // 2. show current menu    
                    $('#' + options.current).removeClass('hidden');    
                }
                
            })    
        })
        
        
        this.showSubMenu    =   function(idSubMenu){
            
            if(idSubMenu != '') {
                // 1. hide all sub menu
                $('.b-sub-menu').addClass('hidden');
                
                // 2. show current menu    
                $('#' + idSubMenu).removeClass('hidden');
            }
        }
        
        // 1. open current sub menu
        this.showSubMenu(options.current);
        
        return this;
    }
})(jQuery);


Так вот трабл в IE6, а именно когда я убираю фокус с любой из ссылок блока b-main-menu. Event bubbling добирается до события $(this).mouseleave(function(event) в плагине и тот прячет подменю. Не могу понять, где именно я должен использовать event.stopPropagation() чтобы остановить движение событий вверх.


--------------------
Мы не стараемся быть первыми, мы стараемся быть лучшими.

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


 




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


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

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