【发布时间】:2018-02-19 12:33:17
【问题描述】:
我创建了一个在视觉上类似于卡片(游戏卡片)的对象 - 一张卡片,上面有一张图片,下面有一些关于卡片的信息,包括文字和符号。页面上可以有很多卡片。
点击卡片会将用户带到一个新页面。这是通过使用 href 将所有卡片元素包装在 div 中来完成的。每张卡片还有一个带有一些选项的下拉菜单。最初的问题是,当点击下拉菜单时,卡片也会被点击。
我想在点击下拉菜单时阻止卡片被点击。下拉菜单本身在被点击时应该表现正常。
href div 和下拉元素如下图所示(我在href div 中使用onclick 来防止嵌套锚标签):
<div onclick="window.location.href = 'someurl'" style="cursor: pointer;">
...
<a href="#" id="dd" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
...
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu">
...
</ul>
...
</div
我尝试输入 event.stopPropagation 来阻止卡片被点击:
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false" onclick="event.stopPropagation(); $('#dd').toggle();">
虽然这种方法会阻止卡片被点击,但它也会忽略一些下拉菜单的功能。例如,单击屏幕上的任意位置或选择菜单中的选项不会再关闭它。菜单保持打开状态,直到明确单击下拉按钮。
【问题讨论】:
标签: javascript html twitter-bootstrap-3