开发者问题收集

Semantic-ui 下拉菜单不起作用

2014-08-27
19323

我在 HTML 表单中集成下拉菜单时遇到了麻烦。我尝试了所有我能做的以及我在网上找到的方法,但仍然不起作用。我发现此代码在 JSFiddle 上运行正常。脚本路径正常,脚本加载正确。

我遗漏了什么吗?

<html>
  <head>
      <meta charset="UTF-8">
      <link href="../semantic/packaged/css/semantic.min.css" rel="stylesheet" type="text/css"/>
  <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
  <script src="../semantic/packaged/javascript/semantic.min.js"></script>
  <script>
    $('.ui.dropdown').dropdown();
  </script>
  </head>
  <body>
      <form class="ui form segment" style="width:400px; margin:auto;" method="POST" action="register_do.php">
    <div class="field">
      <label>학년</label>
      <div class="ui fluid dropdown selection">
        <input type="hidden" name="grade">
        <div class="default text">학년</div>
        <i class="dropdown icon"></i>
        <div class="menu">
          <div class="item" data-value="10">고1</div>
          <div class="item" data-value="11">고2</div>
          <div class="item" data-value="12">고3</div>
        </div>
      </div>
    </div>
    <div class="ui buttons">
              <button class="ui red submit button">등록</button>
              <div class="or"></div>
              <div class="ui button" onClick="history.back();">취소</div>
          </div>
      </form>
  </body>
</html>
3个回答

尝试将

<script>
    $('.ui.dropdown').dropdown();
</script>

放在结束 </body> 标签之前。您在这些元素 $('.ui.dropdown') 甚至存在于 DOM 之前就运行了下拉脚本,因此没有任何内容可以附加。

imjared
2014-08-27

尝试这样写:

$(document).ready(function() {
    $('.ui.dropdown').dropdown();
});

你的脚本位于 body 标签的顶部,因此你必须检查 DOM 是否已准备就绪。ready() 函数将首先检查 DOM 是否已准备就绪,然后运行脚本。

Tawshif Ahsan Khan
2015-06-02

如果您在 theme.config 中的集合下为菜单元素使用自定义主题,但未在主题文件夹中提供变量和覆盖的实际覆盖文件(即使是空文件),也会出现此错误。 没有显示 js 错误,但下拉菜单不起作用。确保您已提供所有覆盖文件,或者仅替换 theme.config 中自定义主题中您真正想要使用的元素。

alex
2018-02-16