【问题标题】:Preventing scrolling when a nested Bootstrap Dropdown <li> clicked单击嵌套的 Bootstrap Dropdown <li> 时防止滚动
【发布时间】:2014-09-25 21:55:16
【问题描述】:

我有两个 Bootstrap 下拉菜单(拆分按钮)。当下拉菜单处于活动状态时,用户可以按下从 1 到 5 的数字,但是当他们按下其中任何一个时,用户将被重定向到页面顶部。

我了解这是正常行为(考虑到他们正在单击“链接”),但我想防止这种影响,因为它会影响移动体验。我尝试在我的 jQuery 代码中使用return false,但是这样做,当下拉菜单处于活动状态时,下拉菜单中无法选择任何元素。有其他选择吗?

HTML:

<div id="btn1">
    <div class="btn-group dropup">
      <button type="button" class="btn btn-primary">Add 1 vector</button>
      <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">
        <span class="caret"></span>
        <span class="sr-only">Toggle Dropdown</span>
      </button>
      <ul class="dropdown-menu" role="menu" id="ajouter">
        <li><a href="#">1</a> </li>
        <li><a href="#">2</a> </li>
        <li><a href="#">3</a> </li>
        <li><a href="#">4</a> </li>
        <li><a href="#">5</a> </li>
    </ul>
   </div>
</div>

jQuery:

$('#ajouter a').on('click', function() {
    nombre_ajout = parseInt($(this).html());
    if (nombre_ajout > 1)
        $('#btn1 button').eq(0).html('Add ' + nombre_ajout +' vectors');
    else if (nombre_ajout == 1)
        $('#btn1 button').eq(0).html('Add ' + nombre_ajout +' vector');
});

图片:

【问题讨论】:

标签: javascript jquery html css twitter-bootstrap


【解决方案1】:

您可以尝试在锚点上一起删除“href”属性吗?

请参阅此帖子:Valid to use <a> (anchor tag) without href attribute?

【讨论】:

  • 我认为它有效,但为了语义起见,我添加了 !很快就会回复您!
  • 准确!非常感谢!
  • 关于使用键盘导航网页(即在美国的可访问性和第 508 节合规性)... 应该注意的是,删除 href 属性会导致锚点在您按下 键,而它突出显示。换句话说,它破坏了键盘导航。 href="javascript:void(0);"方法没有这个问题。
【解决方案2】:

尝试使用下面的代码进行更改。当&lt;li&gt; 点击时,它会阻止滚动到顶部。

<li><a href="javascript:void(0);"> xyz </a></li>

【讨论】:

  • 仅代码的答案通常可以通过添加一些解释来改进。
  • 之前给出的答案有效。但是感谢您找到另一个解决方案!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-03
  • 2018-04-03
  • 2019-12-14
  • 1970-01-01
  • 2021-06-09
  • 2016-07-17
  • 1970-01-01
相关资源
最近更新 更多