如何在不可点击的区域上点击DIV?

时间:2012-01-16 23:46:36

标签: jquery html css

我有一个<div>,其中包含一些链接(<a>标签)和其他元素。我希望<div>表现得像一个按钮,这意味着无论何时用户点击它的每个部分,它都应该导航到某个链接。有一些像这样的解决方案: Make a div into a link我也可以使用jQuery,但问题是我希望<a>中的<div>标记能够像以前一样工作。我找不到任何使这成为可能的解决方案。我怎么能这样做?

2 个答案:

答案 0 :(得分:3)

$('#mydiv a').click(function(e) {
  e.stopPropagation();
});

事件泡沫化,这就是他们所做的。这称为传播。在jQuery事件对象上调用stopPropagation可以防止该事件冒泡到包含它的div。

jQuery Docs here

由于事件处理程序不是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>