如何在下拉菜单中显示所选菜单项

4
我可以帮您翻译成中文。这是一个下拉菜单,用于显示用户选择的字体颜色。目前,下拉菜单显示“样式”,但我希望菜单标题显示当前选定的值。以下是代码:
HTML:
<div id="font_dropdown" class="dropdown">
    <nav id="primary_nav_wrap">
    <ul>
      <li class="current-menu-item"><a>
      <li><a href="#">Style</a>
        <ul class="font-names">
          <li style="font-family: Raleway"><a>Raleway</a></li>
          <li style="font-family: palatino"><a>Palatino</a></li>
          <li style="font-family: impact"><a>Impact</a></li>
          <li style="font-family: courier"><a>Courier</a></li>
          <li style="font-family: Copperplate"><a>Copperplate</a></li>
          <li style="font-family: Monospace"><a>Monospace</a></li>
          <li style="font-family: Fantasy"><a>Fantasy</a></li>
          <li style="font-family: Calibri"><a>Calibri</a></li>
          <li style="font-family: Cursive"><a>Cursive</a></li>
          <li style="font-family: Futura"><a>Futura</a></li>
          <li style="font-family: Rockwell"><a>Rockwell</a></li>
          <li style="font-family: Andale Mono"><a>Andale</a></li>
        </ul>
      </li>
    </ul>
    </nav>
  </div>

CSS:
#primary_nav_wrap
{
  margin-top:15px;
  font-family:raleway;


}

#primary_nav_wrap ul
{
  list-style:none;
  position:relative;
  float:left;
  margin:0;
  padding:0;
  font-family:raleway;

}

#primary_nav_wrap ul a
{
  display:block;
  text-decoration:none;
  font-weight:700;
  font-size:12px;
  line-height:32px;
  padding:0 15px;
  z-index:100;



}

#primary_nav_wrap ul li
{
  position:relative;
  float:left;
  margin:0px;
  padding:0;
  z-index:100;

}

#primary_nav_wrap ul li.current-menu-item
{
  background:#ddd;
  color: orange;
  z-index:100;

}

#primary_nav_wrap ul li:hover
{
  background:#F3F4F5;
  cursor: pointer;
  color: orange;
  z-index:100;
}

#primary_nav_wrap ul ul
{
  display:none;
  position:absolute;
  top:100%;
  left:0;
  background:#fff;
  padding:0;
  z-index:100;

}

#primary_nav_wrap ul ul li
{
  float:none;
  z-index:100;
  width:235px
}

#primary_nav_wrap ul ul a
{
  line-height:120%;
  padding:10px 10px;
  text-align: left;
  left: 100px;
  z-index:100;
}

#primary_nav_wrap ul ul ul
{
  top:0;
  z-index:100;
  left:100%
}

#primary_nav_wrap ul li:hover > ul
{
  display:list-item;
  color: orange;
  z-index:100;

Javascript:

  $(document).on("click", '.font-names li a',  function() {    
      $("#imagewrap h3").css("font-family", $(this).parent().css("font-family"));
      $("#new_tile_font_style").val($(this).parent().css("font-family"));
   });

抱歉代码有些混乱,我还比较新手。谢谢!

3个回答

4

以下是使用jQuery完成的代码:

$(".font-names > li").click(function() {
   $("#menutitle").text($(this).text()); 
});

您还需要为菜单标题元素添加一个id

演示实例:

$(".font-names > li").click(function() {
   $("#menutitle").text($(this).text()); 
});
#primary_nav_wrap
{
  margin-top:15px;
  font-family:raleway;


}

#primary_nav_wrap ul
{
  list-style:none;
  position:relative;
  float:left;
  margin:0;
  padding:0;
  font-family:raleway;

}

#primary_nav_wrap ul a
{
  display:block;
  text-decoration:none;
  font-weight:700;
  font-size:12px;
  line-height:32px;
  padding:0 15px;
  z-index:100;



}

#primary_nav_wrap ul li
{
  position:relative;
  float:left;
  margin:0px;
  padding:0;
  z-index:100;

}

#primary_nav_wrap ul li.current-menu-item
{
  background:#ddd;
  color: orange;
  z-index:100;

}

#primary_nav_wrap ul li:hover
{
  background:#F3F4F5;
  cursor: pointer;
  color: orange;
  z-index:100;
}

#primary_nav_wrap ul ul
{
  display:none;
  position:absolute;
  top:100%;
  left:0;
  background:#fff;
  padding:0;
  z-index:100;

}

#primary_nav_wrap ul ul li
{
  float:none;
  z-index:100;
  width:235px
}

#primary_nav_wrap ul ul a
{
  line-height:120%;
  padding:10px 10px;
  text-align: left;
  left: 100px;
  z-index:100;
}

#primary_nav_wrap ul ul ul
{
  top:0;
  z-index:100;
  left:100%
}

#primary_nav_wrap ul li:hover > ul
{
  display:list-item;
  color: orange;
  z-index:100;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="font_dropdown" class="dropdown">
    <nav id="primary_nav_wrap">
    <ul>
      <li class="current-menu-item"><a>
      <li><a id="menutitle" href="#">Style</a>
        <ul class="font-names">
          <li style="font-family: Raleway"><a>Raleway</a></li>
          <li style="font-family: palatino"><a>Palatino</a></li>
          <li style="font-family: impact"><a>Impact</a></li>
          <li style="font-family: courier"><a>Courier</a></li>
          <li style="font-family: Copperplate"><a>Copperplate</a></li>
          <li style="font-family: Monospace"><a>Monospace</a></li>
          <li style="font-family: Fantasy"><a>Fantasy</a></li>
          <li style="font-family: Calibri"><a>Calibri</a></li>
          <li style="font-family: Cursive"><a>Cursive</a></li>
          <li style="font-family: Futura"><a>Futura</a></li>
          <li style="font-family: Rockwell"><a>Rockwell</a></li>
          <li style="font-family: Andale Mono"><a>Andale</a></li>
        </ul>
      </li>
    </ul>
    </nav>
  </div>

JSFiddle版本:https://jsfiddle.net/m129zd8m/


这在JSFiddle中完美运行,但是当我粘贴它时,似乎无法工作。有什么想法吗? - Scott Myers
@ScottMyers 你是否正确地包含了jQuery?如果没有,请在文档的<head>标签中插入此标记,在所有其他脚本标记之前:<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> - Maximillian Laumeister
很奇怪,我确实正确地包含了jQuery。但仍然没有改变。 - Scott Myers
@ScottMyers 你也记得给菜单标题元素添加id了吗? - Maximillian Laumeister
就这样了!再次感谢您的帮助。 - Scott Myers
显示剩余2条评论

0
也许如果您将类current-menu-item添加到要选择的ul中,会有所帮助?

0
将一个点击事件处理程序绑定到您的
  • 元素,并替换
  • 的文本。
    $('.font-names li').on('click', function () {
        var $currentMenuItem = $('.current-menu-item a'),
            currentText = $('a', this).text();
    
        $currentMenuItem.text(currentText);
    });
    

    但看起来你的HTML有点格式错误

     <ul>
          <li class="current-menu-item"><a>   <----
          <li><a href="#">Style</a>           <----
            <ul class="font-names">
    

    根据它,必须更改正确的选择器。

    Fiddle


  • 网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接