stopPropagation() 和锚点?

2023-11-23

我有这个 html 片段:

<a href="picture-big.jpg">
  <span>
    <img src="picture-small.jpg">
    <input type="checkbox" name="delete">
  </san>
</a>

JS部分:

$('input').click(function(e) {
  e.stopPropagation();
}); 

在 Mozilla 上,当我单击复选框时,它会停止传播,但仍会转到该锚点 (picture-big.jpg)。

如果我使用 return false 或 e.preventDefault() (并使用 jQuery ($('input').prop('checked', true); 检查复选框),它不会检查输入。

想法是在不点击链接的情况下选中复选框。在 Chrome 和 IE 上它可以工作。但在 Mozilla 上却不然。

有任何想法吗?


我建议重组您的标记,如果不可能,则以下方法可行:

$('input').click(function(e) {
    e.preventDefault();
    var that = this;    
    setTimeout(function() { that.checked = !that.checked; }, 1);    
}); 

Fiddle

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

stopPropagation() 和锚点? 的相关文章

随机推荐