Почему этот jQuery не работает в IE? - PullRequest
3 голосов
/ 19 мая 2011

Я работаю над сайтом, который еще кто-то разработал.Они использовали следующий код jQuery для создания выпадающего меню:

        <script type="text/javascript">

            var site_menu_categories_tID = null;
            $(document).ready(
                function(){
                    $("#site-menu-categories").click(
                        function(){
                            self = $(this);
                            $(".submenu-holder").show();
                        }
                    );
                    $("#site-menu-categories").mouseleave(
                        function(){
                            site_menu_categories_tID = setTimeout(function(){
                                $(".submenu-holder").trigger('mouseleave');
                                clearTimeout(site_menu_categories_tID);
                                site_menu_categories_tID=null;
                            },500);
                        }
                    );
                    $(".submenu-holder").mouseenter(
                        function(){
                            if(site_menu_categories_tID!=null){
                                clearTimeout(site_menu_categories_tID);
                                site_menu_categories_tID=null;
                            }
                        }
                    );
                    $(".submenu-holder").mouseleave(
                        function(){
                            self = $(this);
                            self.hide();
                        }
                    );
                }
            );
        </script>

Он отлично работает в Firefox, но не в любом из IE (8 и ниже не тестировались в 9).Есть ли какие-либо видимые ошибки, которые вы можете увидеть?

1 Ответ

4 голосов
/ 19 мая 2011

Чтобы не загромождать глобальную область видимости, избавьтесь от первой self = $(this); и добавьте var ко второй или просто замените эти две строки на $(this).hide();

Очевидно, что IE не нравится, когда вы называете глобальную переменную self.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...