2012-01-16 149 views
4

我有一个<div>其中包含几个链接(<a>标签)和其他元素。我希望<div>的行为像一个按钮,这意味着每当用户点击它的每个部分时,它都应该导航到某个链接。有一些像这样的解决方案: Make a div into a link我也可以使它与jQuery一起工作,但问题是我想要<div>中的<a>标签像以前一样工作。我找不到任何解决方案,使这成为可能。我怎样才能做到这一点?如何让DIV在不可点击的区域点击?

回答

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

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

jQuery Docs here

而且由于事件处理程序不return false,那么浏览器默认的点击操作的<a>标签仍然会被解雇,这意味着href之后正常。

退房这里工作的例子:http://jsfiddle.net/Squeegy/2phtM/

+0

感谢。这正是我所期待的。 –

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>