javascript - slideToggle() 导致第一个 li a 在点击时跳转

标签 javascript jquery html css

我创建了一个非常简单的示例,阅读了许多与 slideToggle() 类似的问题,但未能找出解决方法。 使用 slideToggle() 时,如何摆脱点击第一个 li a 时的跳转?另见 jsFiddle

HTML

<ul>
    <li><a href="#">Click</a></li>
    <li><a href="#">Second</a></li>
    <li><a href="#">Third</a></li>
    <li><a href="#">Fourth</a></li>
</ul>

CSS

 ul {
        background:#ddd;
    }

ul li {
    display:inline;
    background:lightyellow;
}

ul li:not(:first-child) {
    display:none;
    display:inline;
}

jQuery

$('ul li:first-child').on('click', function () {
  $('ul li:not(:first-child)').slideToggle();
  });

最佳答案

您需要垂直对齐您的 inline li 元素,在本例中为顶部:

ul li {
  display: inline;
  vertical-align: top; // the important part
  background: lightyellow; 
}

更新的 jsfiddle:http://jsfiddle.net/heznn9rm/5/ .

阅读有关 vertical-align 属性的更多信息:MDN

另一种(我敢说更常见的)方法是 float你的 li 元素在左边 - 在这种情况下你可能还想使用 CSS clearfix .

ul li {
  float: left;
  background: lightyellow;
}

+ 包含 float liul 元素的最基本的 clearfix:

ul:after {
  clear: both;
  content: "";
  display: block;
}

jsfiddle:http://jsfiddle.net/heznn9rm/6/ .

关于javascript - slideToggle() 导致第一个 li a 在点击时跳转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28660666/

相关文章:

javascript - 在 React.JS 中将 props 的值从函数传递给 render()

javascript - 无法使用 this.function (React.js) 读取未定义的属性 'function'

javascript - 尝试为 setTimeout 淡入和淡出文本时遇到问题

javascript - 如何设置 jquery 可拖动的边距?

html - Yii2 DetailView 对齐

html - 使用 css 在文本后添加 '.'(句点)

javascript - 在另一个 javascript 文件中调用 javascript 函数而不包含 include

javascript - 使用按钮 ID 的单击事件

javascript - 在 WordPress 用户数据库中存储 Javascript 对象

Jquery 移动应用程序安装