考虑以下代码片段:
我想在标签内放置一个复选框,并获得以下单击行为: 另外,如果我在复选框以外的任何地方点击,我不想覆盖默认行为。也就是说,我希望允许执行与单击本身相关联的所有事件处理程序。
我认为这应该很容易实现,但我无法获得所需的行为。要么:
更新:这在 Chrome 中按预期工作,例如,单击时不会重定向,但在 Firefox 中失败。是否有跨浏览器的方法?
考虑以下代码片段:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
</head>
<body>
<form>
<a id="a" href="http://google.com">Goooooogle</a>
</form>
<script>
$(function() {
var checkbox = $('<input type="checkbox"></input>');
checkbox.prependTo($('#a'));
checkbox.click(function(e) {
e.stopPropagation();
// do something useful
});
});
</script>
</body>
</html>
我想在标签内放置一个复选框,并获得以下单击行为: 另外,如果我在复选框以外的任何地方点击,我不想覆盖默认行为。也就是说,我希望允许执行与单击本身相关联的所有事件处理程序。
我认为这应该很容易实现,但我无法获得所需的行为。要么:
- 如果我使用提供的代码,则会被重定向到 Google。
- 如果使用e.preventDefault()或return false;,则无法切换复选标记。此外,在这种情况下,复选框忽略显式的checkbox.attr('checked', 'checked')和设置复选标记的所有其他可能方式。
更新:这在 Chrome 中按预期工作,例如,单击时不会重定向,但在 Firefox 中失败。是否有跨浏览器的方法?