javascript - ul 中有多个链接,但只有第一个链接用于点击事件

标签 javascript html

我希望用户能够在两个链接之间进行选择,但是,无论他们选择哪一行,它总是运行第一个“href”。

<div class="ddmenu-container">
   <div class="ddmenu 2">
    United States
    <ul style="z-index: 6">
      <li><a href="https://www.yahoo.com"> E-Commerce Portal </a></li> 
      <li><a href="https://www.google.com"> Website </a></li>
    </ul>
   </div>
</div> 

这是我的 jQuery 代码。我假设它一旦找到第一个 href 就会停止运行,但我很好奇如何防止这种情况发生并允许它在单击时选择第二个。

<script type="text/javascript">
  $('.ddmenu.2 ul').click(function(e){
      e.preventDefault();
      window.location = $(this).find('a').attr('href');
  });
</script> 

最佳答案

问题:

很明显,您的代码始终使用第一个链接 href因为您的以下代码:

$('.ddmenu.2 ul').click(function(e){
   e.preventDefault();
   window.location = $(this).find('a').attr('href');
});

您正在将点击附加到 ul然后你写$(this).find('a')因此,当它找到匹配的链接(这是第一个)时,它将继续进行。

解决方案:

您需要更改代码以将点击事件附加到 li元素或直接发送至<a>元素,因此将代码更改为:

$('.ddmenu.2 ul li').click(function(e){
   e.preventDefault();
   window.location = $(this).find('a').attr('href');
});

这样当你调用 $(this).find('a') 时,它只会在单击的 li 内获取元素,因此它将获得正确的链接。

关于javascript - ul 中有多个链接,但只有第一个链接用于点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43324557/

相关文章:

javascript - 根据复选框选择隐藏/显示 div

html - 停止 div 与容器重叠

html - CSS "Checkbox hack"z-index 不工作

使用选择器和选项进行 Javascript 排序

javascript - 此特定动画的 javascript 问题

javascript - 如何在移动设备上通过触摸左右滑动?

html - 了解对齐元素 : baseline

jquery - ASP.NET、CSS 和 jQuery

python - BeautifulSoup 查找非官方 HTML 标签/属性

javascript - 在日期选择器中禁用过去的日期并仅启用某些 future 日期