TypeError:jQuery(..).supish不是函数.ul.sf菜单

TypeError: jQuery(...).superfish is not a function. ul.sf-menu

本文关键字:函数 ul sf 菜单 supish jQuery TypeError      更新时间:2023-09-26

我见过jQuery SuperFish错误:jQuery("ul.sf menu")。SuperFish不是函数,而这个TypeError:jQuery(…)。superish不是函数帖子,我尝试了评论和答案中给出的建议,但都不适用。

我只是想在鼠标悬停时延迟显示子菜单。我花了那么多时间,却弄不清原因。

我正在使用superfish来增加子菜单出现的延迟。但它不起作用,在Mozilla Firebug中,我得到了问题标题中提到的错误。

以下是html代码和代码片段:

/*** ESSENTIAL STYLES ***/
.sf-menu,
.sf-menu * {
  margin: 0;
  padding: 0;
  list-style: none;
}
.sf-menu li {
  position: relative;
}
.sf-menu ul {
  position: absolute;
  display: none;
  top: 100%;
  left: 0;
  z-index: 99;
}
.sf-menu > li {
  float: left;
}
.sf-menu li:hover > ul,
.sf-menu li.sfHover > ul {
  display: block;
}
.sf-menu a {
  display: block;
  position: relative;
}
.sf-menu ul ul {
  top: 0;
  left: 100%;
}
/*** DEMO SKIN ***/
.sf-menu {
  float: left;
  margin-bottom: 1em;
}
.sf-menu ul {
  box-shadow: 2px 2px 6px rgba(0, 0, 0, .2);
  min-width: 12em;
  /* allow long menu items to determine submenu width */
  *width: 12em;
  /* no auto sub width for IE7, see white-space comment below */
}
.sf-menu a {
  border-left: 1px solid #fff;
  border-top: 1px solid #dFeEFF;
  /* fallback colour must use full shorthand */
  border-top: 1px solid rgba(255, 255, 255, .5);
  padding: .75em 1em;
  text-decoration: none;
  zoom: 1;
  /* IE7 */
}
.sf-menu a {
  color: #13a;
}
.sf-menu li {
  background: #BDD2FF;
  white-space: nowrap;
  /* no need for Supersubs plugin */
  *white-space: normal;
  /* ...unless you support IE7 (let it wrap) */
  -webkit-transition: background .2s;
  transition: background .2s;
}
.sf-menu ul li {
  background: #AABDE6;
}
.sf-menu ul ul li {
  background: #9AAEDB;
}
.sf-menu li:hover,
.sf-menu li.sfHover {
  background: #CFDEFF;
  /* only transition out, not in */
  -webkit-transition: none;
  transition: none;
}
/*** arrows (for all except IE7) **/
.sf-arrows .sf-with-ul {
  padding-right: 2.5em;
  *padding-right: 1em;
  /* no CSS arrows for IE7 (lack pseudo-elements) */
}
/* styling for both css and generated arrows */
.sf-arrows .sf-with-ul:after {
  content: '';
  position: absolute;
  top: 50%;
  right: 1em;
  margin-top: -3px;
  height: 0;
  width: 0;
  /* order of following 3 rules important for fallbacks to work */
  border: 5px solid transparent;
  border-top-color: #dFeEFF;
  /* edit this to suit design (no rgba in IE8) */
  border-top-color: rgba(255, 255, 255, .5);
}
.sf-arrows > li > .sf-with-ul:focus:after,
.sf-arrows > li:hover > .sf-with-ul:after,
.sf-arrows > .sfHover > .sf-with-ul:after {
  border-top-color: white;
  /* IE8 fallback colour */
}
/* styling for right-facing arrows */
.sf-arrows ul .sf-with-ul:after {
  margin-top: -5px;
  margin-right: -3px;
  border-color: transparent;
  border-left-color: #dFeEFF;
  /* edit this to suit design (no rgba in IE8) */
  border-left-color: rgba(255, 255, 255, .5);
}
.sf-arrows ul li > .sf-with-ul:focus:after,
.sf-arrows ul li:hover > .sf-with-ul:after,
.sf-arrows ul .sfHover > .sf-with-ul:after {
  border-left-color: white;
}
/*** adding the class sf-navbar in addition to sf-menu creates an all-horizontal nav-bar menu ***/
.sf-navbar {
  background: #BDD2FF;
  position: relative;
  margin-bottom: 5em;
}
/* provide background colour for submenu strip */
/* you should just set the menu's container bg colour rather than use pseudo-elements */
.sf-navbar:before {
  content: '';
  position: absolute;
  left: 0;
  z-index: -1;
  background-color: #BDD2FF;
  height: 200%;
  width: 100%;
}
.sf-navbar ul {
  box-shadow: none;
}
.sf-navbar li {
  background: #AABDE6;
  position: static;
}
.sf-navbar > li > a,
.sf-navbar > li > ul > li > a {
  border: none;
}
.sf-navbar > li > ul {
  min-width: 36em;
  /* set this to whatever suits your design */
}
.sf-navbar ul li {
  background: #BDD2FF;
  position: relative;
}
.sf-navbar ul ul {
  left: 0;
  top: 100%;
}
.sf-navbar ul ul li {
  width: 100%;
}
.sf-navbar > li > ul > li {
  float: left;
}
.sf-navbar li.current {
  background: #BDD2FF;
}
.sf-navbar li:hover,
.sf-navbar li.sfHover,
.sf-navbar ul li.current {
  background: #BDD2FF;
}
.sf-navbar ul li:hover,
.sf-navbar ul li.sfHover,
.sf-navbar ul ul li {
  background: #D1DFFF;
}
.sf-navbar ul ul li:hover,
.sf-navbar ul ul li.sfHover,
.sf-navbar ul ul li.current {
  background: #E6EEFF;
}
.sf-navbar ul li.current > a {
  font-weight: bold;
}
/*** point all arrows down ***/
.sf-arrows.sf-navbar ul .sf-with-ul:after {
  margin-top: -3px;
  margin-right: 0;
  border-color: transparent;
  border-top-color: #dFeEFF;
  /* edit this to suit design (no rgba in IE8) */
  border-top-color: rgba(255, 255, 255, .5);
}
.sf-arrows.sf-navbar ul > li > .sf-with-ul:focus:after,
.sf-arrows.sf-navbar ul > li:hover > .sf-with-ul:after,
.sf-arrows.sf-navbar ul > .sfHover > .sf-with-ul:after {
  border-color: transparent;
  border-top-color: white;
}
<html>
<head>
  <link rel="stylesheet" href="css/superfish.css">
  <link rel="stylesheet" href="css/superfish-navbar.css">
</head>
<body>
  <ul class="sf-menu sf-navbar">
    <li>
      <a class="" href="">News<span class="caret"></span></a>
      <ul class="">
        <li><a href="">Add New</a>
        </li>
        <li><a href="">Overview</a>
        </li>
      </ul>
    </li>
    <li>
      <a class="" href="">Products<span class="caret"></span></a>
      <ul class="">
        <li><a href="">New Product</a>
        </li>
      </ul>
    </li>
  </ul>
  <script src="hoverIntent.js"></script>
  <script src="superfish.js"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
  <!-- initialise Superfish -->
  <script>
    jQuery(document).ready(function() {
      jQuery('ul.sf-menu').superfish({
        pathClass: 'current',
        delay: 1800000
      });
    });
  </script>
</body>
</html>

在加载jquery.min.js之前加载superfish.js——超级鱼取决于jquery

将脚本更改为:

...
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="superfish.js"></script>
...

工作plnkr