我有一个<div>
,其中包含一些链接(<a>
标签)和其他元素。我希望<div>
表现得像一个按钮,这意味着无论何时用户点击它的每个部分,它都应该导航到某个链接。有一些像这样的解决方案:
Make a div into a link我也可以使用jQuery,但问题是我希望<a>
中的<div>
标记能够像以前一样工作。我找不到任何使这成为可能的解决方案。我怎么能这样做?
答案 0 :(得分:3)
$('#mydiv a').click(function(e) {
e.stopPropagation();
});
事件泡沫化,这就是他们所做的。这称为传播。在jQuery事件对象上调用stopPropagation
可以防止该事件冒泡到包含它的div。
由于事件处理程序不是return false
,因此仍会触发<a>
标记的浏览器默认点击处理,这意味着href
正常关注。
在此处查看一个有效的示例:http://jsfiddle.net/Squeegy/2phtM/
答案 1 :(得分:1)
我认为你需要一个事件处理程序来确定哪个元素触发了点击 - 就像这样
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
$(function() {
$("#links").click(handler);
})
function handler(event) {
var $target = $(event.target);
if($target.is("#links")) {
window.location = "divlocation.htm"
}
}
</script>
</head>
<body>
<div id="links" style="background: yellow">
<a href="test1.htm">link 1</a><br>
<a href="test2.htm">link 2</a>
</div>
</body>
</html>