2012-03-13 42 views
1

我有两个div,我想点击。每个div都有一个锚链接,我希望为每个div的链接使用它。让分支链接

我使用低于适用于左格,但不正确的帮助。 http://css-tricks.com/snippets/jquery/make-entire-div-clickable

不知道我错过了什么,或者如果有更好的方法来做到这一点?理想情况下,我只想使用CSS,但即使js被禁用,此选项仍然可以工作。

任何帮助将是伟大的。

$('.left').click(function(){ 
    window.location=$(this).find("a").attr("href"); 
    return false; 
}); 
$('.right').click(function(){ 
    window.location=$(this).find("a").attr("href"); 
    return false; 
}); 


    <div class="left"> 
    <div class="left-content"> 
     <h2><a href="#">title</a></h2> 

     <ul> 
      <li>Link</li> 
      <li>Link</li> 
      <li>Link</li> 
     </ul> 
    </div> 
</div> 

<div class="right"> 
    <div class="right-content"> 
     <h2><a href="#">title</a></h2> 

     <ul> 
      <li>Link</li> 
      <li>Link</li> 
      <li>Link</li> 
     </ul> 
    </div>   
</div> 
+0

我承担了真实版在你的''的HREF中s为不只是一个#,对不对? – Jordan 2012-03-13 18:44:54

+0

有没有办法做到这一点没有JS - CSS无法将click()事件添加到div,这是你需要的,以便它是可点击的。 – kclair 2012-03-13 18:48:11

回答

5

把资料核实锚内是有效的HTML5,并与其他DOCTYPES向后兼容。

<a href="#"> 
    <div class="right"> 
     <div class="right-content"> 
      <h2>title</h2> 
      <ul> 
       <li>Link</li> 
       <li>Link</li> 
       <li>Link</li> 
      </ul> 
     </div>   
    </div> 
</a> 
+0

感谢这看起来像一个很好的解决方案不知道你可以围绕div的锚定。只要它验证看起来像最好的选择,而不是js。 – Jemes 2012-03-13 21:34:43

2

使用这种方式:

$('.left').click(function(){ 
    window.location=$(this).children("a:first").attr("href"); 
    return false; 
}); 
$('.right').click(function(){ 
    window.location=$(this).children("a:first").attr("href"); 
    return false; 
}); 
1

工作正常here

$(document).on('click','.clickable', function(){ 
    window.location=$(this).find("a").attr("href"); 
    return false; 

}); 

,我已经添加上悬停指针的唯一的事情。

0

你可以用CSS做到这一点。给你的主播标签display: block;。然后在a内放ul

这里是一个live demo。如果你将鼠标悬停在div之上,你会发现它们都是可点击的。