javascript - 如何制作可点击的横幅

标签 javascript jquery

我有一个div,里面有一个链接。当我点击一个 div 时,它应该打开链接(例如:google.com)但是当我点击按钮时它应该打开另一个链接。

<div class="sc-banner">
    <a href="#" target="_blank">Button</a>
</div>
$(".sc-banner").click(function (event) {
    event.stopPropagation();
    window.open ('http://google.com', "_blank");
});

最佳答案

问题是因为来自 a 的点击事件正在向上传播 DOM 并触发 div 上的点击处理程序。

您可以通过多种方式解决此问题。首先,检查 div 处理程序中的事件目标是什么:

$(".sc-banner").click(function(e) {
  e.stopPropagation();
  if (e.target.tagName !== 'A')
    window.open('http://google.com', "_blank");
});

或者,您可以向调用 stopPropagation()a 添加另一个事件处理程序:

$(".sc-banner").click(function(e) {
  e.stopPropagation();
  window.open('http://google.com', "_blank");
});

$(".sc-banner a").click(function(e) {
  e.stopPropagation();
});

关于javascript - 如何制作可点击的横幅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53175319/

相关文章:

javascript - 复选框未选中 onclick JavaScript

javascript - 如何将事件从父组件传递到子组件?

javascript - 使用 get() 与 CoffeeScript 和 Ruby on Rails 检索值

javascript - jQuery on click 用于在未单击时触发动态元素

javascript - 根据 $http 的响应更改按钮颜色

javascript - 我如何在 AngularFire2 中获取当前用户的访问 token ?

javascript - 如何在人力车的 X 轴上绘制日期

javascript - 从头开始创建下划线 reduce 函数

javascript - 模板的动画下拉菜单

javascript - 使用 javascript jQuery 在 html 中突出显示文本