Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery插件中出现错误_Javascript_Jquery_Jquery Ui_Jquery Plugins - Fatal编程技术网

Javascript jquery插件中出现错误

Javascript jquery插件中出现错误,javascript,jquery,jquery-ui,jquery-plugins,Javascript,Jquery,Jquery Ui,Jquery Plugins,我用jquery为菜单编写了这个插件 此插件在Chrome中成功运行,但在IE或其他浏览器中无法正常运行。。。 此错误包含以下内容: 当我在菜单中单击时,菜单打开,但当鼠标悬停时,子菜单子菜单不打开 此错误适用于除Chrome以外的所有浏览器。。。 在chrome中,当鼠标悬停时,此菜单正确工作子菜单打开 $(function () { $.fn.extend({ hMenu: function (options) { var settings

我用jquery为菜单编写了这个插件 此插件在Chrome中成功运行,但在IE或其他浏览器中无法正常运行。。。 此错误包含以下内容: 当我在菜单中单击时,菜单打开,但当鼠标悬停时,子菜单子菜单不打开 此错误适用于除Chrome以外的所有浏览器。。。 在chrome中,当鼠标悬停时,此菜单正确工作子菜单打开

$(function () {
    $.fn.extend({
        hMenu: function (options) {

            var settings = {
                menuItem: '',
                subMenuSelector: 'div.sub-menu',
                subSubMenuSelector: 'div.sub-menu ul li',
                opp: 'a.outdoor',
                closeDuration: 150,
                openDuration: 350
            };
            var style = {
                "display": "block",
                clear: "both"
            }


            if (options != null) {
                $.extend(settings, options);
            }
            var _base = $(this);
            var _id = "";
            init();

            function init() {
                if (settings.menuItem == '' || settings.subMenuItem == '') { return; }
                $(settings.menuItem, _base).each(function () {
                    if ($(settings.subMenuSelector, $(this).parent()).length > 0) {
                        $(this).click(function () {
                            $(settings.subMenuSelector + ':visible', _base).fadeOut(settings.closeDuration);
                            if ($(settings.subMenuSelector, $(this).parent()).is(':visible')) {
                                $(settings.subMenuSelector, $(this).parent()).slideUp(settings.closeDuration);
                                $('html').unbind('click');
                            }
                            else {
                                //Show My Sub menu
                                $(settings.subMenuSelector, $(this).parent()).fadeIn(settings.openDuration);

                                $(settings.subMenuSelector, $(this).parent()).click(function () {
                                    cancelEvent();
                                });


                                // And Do not anything else !!!!!! (cancel event !)
                                cancelEvent();
                                //                                $(settings.subSubMenuSelector).click(function () {
                                //                                    $(settings.subMenuSelector).animate({ width: "700px", height: "700px" });
                                //                                   
                                //                                })
                                if (settings.subSubMenuSelector == "") { return; }
                                //                                $(settings.subSubMenuSelector).mouseover(function () { 
                                //                                      $(this).css("color","red"); 
                                //                                    }); 
                                $(settings.subSubMenuSelector).hover(function () {
                                    var id = $(this).attr("id");
                                    _id = id;
                                    $("a." + id + "").show(function () {
                                        $('a.' + id + '').css('display', 'block');
                                    }); //show callback
                                    //alert(id);

                                }, function () {
                                    $('a.' + _id + '').hide('slow');
                                }); //subsubmenuselector.hover
                                //If user clicke on html , close current sub-menu
                                $('html').bind('click', function () {
                                    $(settings.subMenuSelector, $(this).parent()).fadeOut(settings.closeDuration);
                                });
                            }
                        });
                    }
                });
            }
            function cancelEvent() {
                if (event && event.stopPropagation) {
                    event.stopPropagation();
                }
                else if (e && e.preventDefault) {
                    e.preventDefault(); // DOM style
                }
                else { // IE hack
                    window.event.cancelBubble = true;
                }
            }
        } //function
    }); //plugin definition
});                  

你能把代码放在jsfiddle中吗?为什么jQuery内置了cancelEvent函数呢?此外,e是未定义的,因此您应该在那里得到一个错误!为什么要这样做$('a.+id+'').css('display','block');当jquery show()已经为您完成这项工作时。