2012-01-16 82 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>