如何在不影响内锚的情况下使li可点击
How to make li clickable without affecting inner anchor?
我有一个我正在使用的产品列表:
当用户单击li上的任何地方,我想使用发送到产品详细信息页面,例如/product/id/。当用户将鼠标放在li上时,我还显示一个图标,当单击该图标时,用户可以在收藏夹中添加产品。
<ul>
<li class="media">
<div class="media-left">
<a href="/product/123/">
<thumb>
<div class="thumb">
<img src="/images/company-logo.jpg">
</div>
</thumb>
</a>
</div>
<div class="media-body">
<div class="item-actions autohide pull-right">
<a title="Add to Favorites"><i class="material-icons">favorite</i></a>
</div>
<div class="media-heading b">
<a href="/product/123">Demo Product</a>
</div>
<div class="text-sm">
<div style="height:16px;overflow:hidden;">Demo Manufacturer</div>
</div>
</div>
</li>
</ul>
我知道我可以使用javascript使整个li可点击并将用户发送到产品详细信息页面。
<li (click)="sendToproductDetailsPage(123)">
.....
</li>
但这种方法的问题是,当我点击收藏图标时,它也会将用户发送到产品详细信息页面。
谁能请指导如何实现这与纯JavaScript?
您显然有一个用于"Favorite" a
链接的事件处理程序,用于处理将内容添加到收藏夹中。让该事件处理程序停止传播。由于点击停止的a
,它永远不会冒泡到li
,你不必担心它触发li
的点击处理程序。
如果你通过addEventListener
连接事件,你的处理程序得到一个具有stopPropgation
的事件对象,所以:
yourEventArgument.stopPropagation();
如果你使用onxyz
风格的事件处理程序,return false
从处理程序;它做了和stopPropgation
一样的事情(更多在我的博客上: return false
的真实故事)。
相关文章:
- 如何在未直接触发的情况下停止事件
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 在不使用jquery的情况下查找页面中的所有锚点并附加函数
- 在不打开聊天屏幕的情况下制作Zopim-ding代理
- 在不阻止默认行为的情况下检测IE10中的缩放
- 如何在不传递此信息的情况下查找被调用的元素
- 如何在不刷新页面的情况下更新显示框
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- JavaScript-在手机上不工作的情况下,在外部单击时隐藏元素
- 在我的情况下,如何进行http请求
- 如何在应用切换点击功能之前,默认情况下在页面加载时隐藏带有特定类的ul-li
- 在不使用sort()的情况下获取HTML LI元素的副本
- 如何仅在li元素存在的情况下向pre元素添加id
- 如何在不更改的情况下更改ul中的li文本'的其他属性
- 在这种情况下,当我更新arrayController内容时,余烬将重新渲染DOM中的所有li
- 在列表中存在隐藏li的情况下,在li上应用备用类,而不使用:visible
- CSSJS-默认情况下,长li文本展开(溢出应隐藏)
- 如何在不给他们id的情况下获得li的文本
- 在不重新加载的情况下改变Li中的Dom元素
- 如何在不影响内锚的情况下使li可点击